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;
}
posted @ 2022-08-10 01:11  Fare-Well  阅读(36)  评论(0)    收藏  举报