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;
}