PAT (Basic Level) 1074 宇宙无敌加法器

题意

进制转换题,不过每一位进制都不同。

思路

水~

代码

#include <bits/stdc++.h>
using namespace std;
int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	string jz, a, b;
	cin >> jz >> a >> b;
	reverse(jz.begin(), jz.end());
	reverse(a.begin(), a.end());
	reverse(b.begin(), b.end());
	vector<int> sum;
	int i = 0, j = 0;
	while (i < a.size() && j < b.size())
		sum.push_back(a[i++] - '0' + b[j++] - '0');
	while (i < a.size() )
		sum.push_back(a[i++] - '0');
	while (j < b.size())
		sum.push_back(b[j++] - '0');
	for (int i = 0; i < sum.size(); ++i) {
		int mod = jz[i] - '0';
		if (mod == 0) mod = 10;
		int add = sum[i] / mod;
		sum[i] %= mod;
		if (!add) continue;
		if (i + 1 < sum.size())
			sum[i + 1] += add;
		else 
			sum.push_back(add);
	}
	string ans;
	for (auto e : sum) ans.push_back(e + '0');
	while (ans.back() == '0') ans.pop_back();
	if (ans.size() == 0) ans = "0";
	reverse(ans.begin(), ans.end());
	cout << ans << '\n';
	return 0;
} 

HINT

不定时更新更多题解,Basic Level 全部AC代码,详见 link ! ! !

发布了92 篇原创文章 · 获赞 16 · 访问量 3765

猜你喜欢

转载自blog.csdn.net/abcdefbrhdb/article/details/104639383