PAT 1022 D进制的A+B

题目描述:

输入两个非负 10 进制整数 A 和 B (≤2​30​​−1),输出 A+B 的 D (1

输入格式:

输入在一行中依次给出 3 个整数 A、B 和 D。

输出格式:

输出 A+B 的 D 进制数。

输入样例:

123 456 8

输出样例:

1103

思路分析:这道题主要就是考的进制转换,在编程中进制转换应该属于必会的技能。发现一个进制转换总结的很棒的网站,分享一下。

C++中的各种进制转换 

#include
#include
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);
 } 

 

你可能感兴趣的:(PAT 1022 D进制的A+B)