题目描述:
输入两个非负 10 进制整数 A 和 B (≤230−1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
思路分析:这道题主要就是考的进制转换,在编程中进制转换应该属于必会的技能。发现一个进制转换总结的很棒的网站,分享一下。
C++中的各种进制转换
#include<iostream>
#include<algorithm>
using namespace std;
string intToA(int n,int radix) //n是待转数字,radix是指定的进制
{
string ans="";
do{
int t=n%radix;
if(t>=0&&t<=9) ans+=t+'0';
else ans+=t-10+'a';
n/=radix;
}while(n!=0); //使用do{}while()以防止输入为0的情况
reverse(ans.begin(),ans.end());
return ans;
}
int main()
{
int a,b,D;
cin >> a >> b >> D;
cout << intToA(a+b,D);
}