输入两个非负 10 进制整数 A 和 B (≤−1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
这个题目遇到两个坑点
第一个坑点在于d = 10的时候,无需转换直接输出结果就好
第二个坑点在于sum = 0的情况,如果这种情况不在if中表示出来,按照原程序则无输出
C++
//sum等于0的情况是一个坑点
//以及d等于10的情况
#include<iostream>
using namespace std;
const int N = 1000010;
int p[N],k;
int main(){
int a,b,d;
cin>>a>>b>>d;
int sum = a + b;
if(d == 10||sum == 0)
{
cout<<sum<<endl;
return 0;
}
while(sum){
p[k++] = sum % d;
sum /= d;
}
for(int i = k - 1;i>=0;i--)
cout<<p[i];
return 0;
}