1022 D进制的A+B (20分)
输入两个非负 10 进制整数 A 和 B (≤2
30
−1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
分析
- a+b的和小于 231-1 用Int就足够了
- 求C的D进制,只需要对C不断取余即可,直到C的模为0。
- 使用do{} while结构可以让其先计算再判断。
代码
#include <stdio.h>
int sr[31]={0};
int main(){
int a,b,c,num,count=0;
scanf("%d%d%d",&a,&b,&num);
c = a+b;
do{
sr[count++]=c%num;
c/=num;
}while(c!=0);
for(int i=count-1;i>=0;i--){
printf("%d",sr[i]);
}
return 0;
}