1022. D进制的A+B (20)
输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。
输入格式:
输入在一行中依次给出3个整数A、B和D。
输出格式:
输出A+B的D进制数。
输入样例:123 456 8输出样例:
1103
//32位系统上int的最大值2^31-1
#include <iostream>
#include <math.h>
#include <vector>
using namespace std;
int main()
{
vector<int> ivec;
int A, B, D;
cin >> A >> B >> D;
int sum = A + B;
double tempsum = sum;
int index = 0;
while(tempsum >= D)
{
tempsum /= D;
++index;
}
for ( ; index != -1; --index)
{
int temp = int(pow(D, index));
if (sum >= temp)
{
int quotients = sum/temp;
sum = sum - quotients*temp;
ivec.push_back(quotients);
}
else
{
ivec.push_back(0);
}
}
for (vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)
{
cout << *iter;
}
cout << endl;
system("pause");
return 0;
}