听取RE声一片
查看原帖
听取RE声一片
1544977
huajianyu_1323楼主2025/7/28 20:51

谁来救救我的代码

#include <bits/stdc++.h>
using namespace std;
int tToTen (int n, int t) {
	long long ans = 0;
	int flag = 0;
	if (t <= 10) {
		while (n != 0) {
			int num = n % 10;
			ans += pow(t, flag) * num;
			flag++;
			n /= 10;
		}
	}
	return ans;
}
int main() {
	int n;
	cin >> n;
	vector<vector<string>> a(n, vector<string>(n));
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			cin >> a[i][j];
		}
	}
	for (int i = 0; i < n; i++) {
		int t = stoi(a[i][0]);
		if (t <= 10) {
			int c = stoi(a[i][n - 1]);
			cout << tToTen(c, t) << "\n";
		}
		else {
			long long ans = 0; // 当前答案
			int flag = 0; //位权
				int num = 0; 
				for (int z = a[i][n - 1].length() - 1; z >= 0; z--) {
					if (a[i][n - 1][z] >= 'A' && a[i][n - 1][z] <= 'F') {
						num = int(a[i][n - 1][z]) - 55;
						ans += pow(t, flag) * num;
						flag++;
					}
					else {
						num = int(a[i][n - 1][z] - '0');
						ans += pow(t, flag) * num;
						flag++;
					}
				}
			cout << ans << "\n";
		}
	}
	return 0;
}
2025/7/28 20:51
加载中...