这题很简单,常规方法用数组存储然后倒序输出,还有个更好的方法,同样也是这位大神给的启发~PAT Basic 1022. D进制的A+B (20)(C语言实现)
#include <stdio.h>
int main()
{
int a, b, r, sum, num[100] = {0}, i = 0;
scanf("%d%d%d", &a, &b, &r);
sum = a + b;
if(!sum) printf("0");
while(sum)
{
num[i++] = sum % r;
sum /= r;
}
for(int j = i - 1; j >= 0; j--)
printf("%d", num[j]);
return 0;
}
#include <stdio.h>
int main()
{
int a, b, r,num = 1, sum;
scanf("%d %d %d", &a, &b, &r);
sum = a + b;
while(sum / r >= num)
num *= r;//计算出具体的进制位数
for(; num > 0; sum = sum % num, num /= r)
printf("%d", sum / num);
return 0;
}