1022 D进制的A+B (20 分)
问题描述:
输入两个非负 10 进制整数 A 和 B (≤pow(2,30) −1),输出 A+B 的 D (1<D≤10)进制数。
解题思路:
除基留余数,最后将余数反过来输出。我一开始做的时候用的是while循环,直接判断while(sum)。这里有个问题就是,要是sum的值是0,循环进不去,最后连0都不能输出。所以得先执行一次循环体,用do-while循环。
代码如下:
#include <cstdio>
int main()
{
unsigned int A,B,D;
scanf("%d%d%d",&A, &B, &D);
int sum = A + B;
int result[31];
int index = 0;
do
{
result[index++] = sum % D;
sum /= D;
}while(sum);
for(int i = index - 1; i >= 0; i--)
{
printf("%d",result[i]);
}
putchar('\n');
return 0;
}