求助
  • 板块灌水区
  • 楼主happybob
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/2/9 16:29
  • 上次更新2023/10/28 09:09:34
查看原帖
求助
332914
happybob楼主2022/2/9 16:29

https://www.luogu.com.cn/problem/P1952

50pts50pts

#include <bits/stdc++.h>
using namespace std;

#define int long long

string ans = "";

signed main()
{
	int n;
	string a, b;
	cin >> n >> a >> b;
	int now = 0, la = a.size() - 1, lb = b.size() - 1, e = 0;
	reverse(a.begin(), a.end());
	reverse(b.begin(), b.end());
	for (int i = 0; i <= max(la, lb) + 100; i++)
	{
		int al = 0, bl = 0;
		if (isdigit(a[i])) al = a[i] - '0';
		if (isdigit(b[i])) bl = b[i] - '0';
		else if (isalpha(a[i])) al = a[i] - 'a' + 10;
		else if (isalpha(b[i])) bl = b[i] - 'a' + 10;
		if (i > la) al = 0;
		if (i > lb) bl = 0;
		int p = (al + bl) + e;
		if (p % n >= 0 && p % n <= 9) ans.push_back(p % n + '0');
		else ans.push_back((p % n) - 10 + 'a');
		e = (p - (p % n)) / n;
	}
	reverse(ans.begin(), ans.end());
	while (ans.front() == '0' && ans.size() > 1) ans.erase(ans.begin());
	cout << ans << endl;
	return 0;
}
2022/2/9 16:29
加载中...