B1022 D進制的A+B (20分)
輸入兩個非負 10 進制整數 A 和 B (≤230−1),輸出 A+B 的 D (1<D≤10)進制數。
輸入格式:
輸入在一行中依次給出 3 個整數 A、B 和 D。
輸出格式:
輸出 A+B 的 D 進制數。
輸入樣例:
123 456 8
輸出樣例:
1103
題目簡單不斷取餘數 然後倒着求出來 可以利用棧存儲餘數
但是要考慮到兩個數都爲0時的情況
#include <cstdio>
const int max=100000;
void cal(int a,int b)
{
int st[max];
int top=-1;
while(a!=0)
{
top++;
st[top]=a%b;
a/=b;
}
while(top>-1)
{
printf("%d",st[top]);
top--;
}
printf("\n");
}
int main()
{
int d;
long int a,b,sum;
scanf("%ld%ld%d",&a,&b,&d);
if(a==0&b==0)
{
printf("0\n");
return 0;
}
sum=a+b;
cal(sum,d);
return 0;
}