#include <iostream>
using namespace std;
#include <math.h>
int main(){
int n1, n2, sum, num, a[32]={0}, i;
int count = 0;
cin >> n1 >> n2 >> num;
sum = n1 + n2;
while(sum > 0){
a[count++] = sum % num;
sum /= num;
}
if(count == 0) printf("%d", 0);
else{
for(i = count-1; i >= 0; i--){
printf("%d", a[i]);
}
}
return 0;
}
题目中说明是两个非负整数,但是给出的输入条件是两个整数,所以一定要考察D等于0 的情况。
对于这个情况,一下代码处理方式更为精巧。
https://blog.csdn.net/qq_37729102/article/details/81711371
#include<iostream>
using namespace std;
int main()
{
int A,B,C,D,num[31]={0},i=0;
cin>>A>>B>>D;
C=A+B;
while(C/D)//为了处理0的情况而提前退出
{
num[i++]=C%D;
C/=D;
}
num[i]=C;//此时i=位数-1
while(i>=0)
cout<<num[i--];
return 0;
}
来源:CSDN
作者:J_北冥有鱼
链接:https://blog.csdn.net/weixin_35737222/article/details/103692783