题目链接->link
思路
- 10进制转换低进制用除数取余法,因为a+b不超过31位,所以用数组存储转换后的结果,再从高位输出到低位。
- 注意a+b=0时特判输出0。
代码
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <iostream>
using namespace std;
int main(){
int a,b,d,sum;
scanf("%d %d %d",&a,&b,&d);
sum=a+b;
int con[31],num=0;//con[31]记录进制转换后的数,num记录下标
do{
con[num++]=sum%d;
sum/=d;
}while(sum!=0);
for(int i=num-1;i>=0;i--){//从高位输出到低位
printf("%d",con[i]);
}
printf("\n");
return 0;
}