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
- 非常见进制转换,但明确进制转换的原理与十转二进制原理相同。
- 之前没有认真读题,以为是常见的2 8 10 16转换,走了弯路,下次认真读题。
代码如下:
#include<iostream>
#include<string>
using namespace std;
string func_trans(int a ,int n){
if(a == 0) return "0"; #这里有个测试点
else{
string res = "";
while(a != 0){
res = to_string(a%n) + res;
a /= n;
}
return res;
}
}
int main(){
int a, b, n;
cin>>a>>b>>n;
cout<<func_trans(a+b, n);
return 0;
}