原题链接:http://pat.zju.edu.cn/contests/pat-b-practise/1022
输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。
输入格式:
输入在一行中依次给出3个整数A、B和D。
输出格式:
输出A+B的D进制数。
输入样例:123 456 8输出样例:
1103
#include <stdio.h> const int N = 32; int main() { int result[N];//结果转换成D进制数最多不会超过32位 int a,b,d; int sum; int bit_count;//D进制数的位数 while(scanf("%d %d %d", &a, &b, &d)!=EOF) { sum = a+b; bit_count = 0; while(sum!=0) { result[bit_count++] = sum%d; sum = sum/d; } if(bit_count == 0){ result[bit_count++] = 0; } for(int i=bit_count-1; i>0; --i) { printf("%d", result[i]); } printf("%d\n", result[0]); } return 0; }