1022 D进制的A+B——20分
输入两个非负10进制整数A和B(<=2^30-1),输出A+B的D (1 < D <= 10)进制数。
输入格式
输入在一行中依次给出3个整数A、B和D。
输出格式
输出A+B的D进制数。
输入样例
123 456 8
输出样例
1103
| 代码长度限制 | 时间限制 ||内存限制 |
|16 KB | 200 ms | 64 MB |
思路:
①按要求进行输入,再求和
②等于0的情况需要特判一下
③接下来模拟求进制的过程,将(和%进制)存入vector中,再(和/=进制),如此循环直到和为0
④因为每次都在vector前面插入,在最后直接正序输出就可以了,不用逆序
代码:
#include<bits/stdtr1c++.h>
using namespace std;
int main() {
vector<int> v;
int a, b, base;
cin >> a >> b >> base;
int sum = a + b, t;
if (sum == 0) {
cout << 0;
return 0;
}
while (sum > 0) {
t = sum % base;
v.insert(v.begin(), t);
sum /= base;
}
for (auto x : v) cout << x;
return 0;
}

浙公网安备 33010602011771号