浙大 pat Basic Level 1022

来源:互联网 发布:excel拆分数据公式 编辑:程序博客网 时间:2024/06/07 07:05

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;}


0 0