http://www.patest.cn/contests/pat-b-practise/1022
题目描述:
输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。
输入格式:
输入在一行中依次给出3个整数A、B和D。
输出格式:
输出A+B的D进制数。
输入样例:123 456 8输出样例:
1103本题范围int类型存储是够的,直接取余整除就行了。但是我不明白姥姥给A、B两个输入的用意是什么?为什么不是将一个数转为相应进制数?
#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#include <iomanip>
#include <ctype.h>
using namespace std;
string transform( int num , int D)
{
string res = "";
while (num >= D)
{
char temp = num%D + '0';
res = temp + res;
num /= D;
}
char temp = num + '0';
res = temp + res;
return res;
}
int main()
{
int A = 0 , B = 0, D = 0;
cin >> A >> B >> D ;
cout << transform( A+B , D) ;
return 0;
}