题目内容:
输入两个非负10进制整数 A 和
B(≤230−1) ,输出 A +B 的 D(1<D≤10) 进制数。输入格式:
输入在一行中依次给出3个整数A、B和D。
输出格式:
输出A+B的D进制数。
输入样例:
123 456 8
输出样例:
1103
思路分析:
这里进制转换的方法是,对于转换m进制,使要转换的数n不断地除m并取出余数,直到n变为0。将记录的余数逆序输出,就是要转换的结果。
代码:
#include <stdio.h>
int main()
{
int a, b, k, dgt = 0, sum, number[100] = {0};
scanf("%d %d %d", &a, &b, &k);
sum = a + b;
do{ number[dgt++] = sum % k; // 记录余数
sum /= k; // 除以进制数
}while (sum != 0);
for (int i = dgt-1; i >= 0; i--) // 逆序输出
printf("%d", number[i]);
return 0;
}