您的位置:首页 > 其它

浙大 pat Basic Level 1022

2014-03-07 09:07 218 查看

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: