10分,求助
  • 板块学术版
  • 楼主__MZ__
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/11/30 17:34
  • 上次更新2024/11/30 19:46:30
查看原帖
10分,求助
1333715
__MZ__楼主2024/11/30 17:34

B3869 [GESP202309 四级] 进制转换

传送门

#include<bits/stdc++.h>
using namespace std;
long long n, k, ans;
string a;
vector<int>b;
int main() {
	cin >> n;
	while (n--) {
		cin >> k >> a;
		ans = 0;
		if (k == 10) {
			cout<<a<<endl;
			continue;
		}
		if (k < 10) {
			long long tmp = 0;
			for (long long i = a.size() - 1; i >= 0; i--) {
				ans += (a[i] - '0') * (pow(k, tmp));
				tmp++;
			}
		} else {
			long long tmp = 0;
			for (int i = a.size() - 1; i >= 0; i--) {
				if (a[i] >= '0' && a[i] <= '9')ans += (a[i] - '0') * pow(k, tmp);
				else ans += (a[i] - 55) * pow(k, tmp);
				tmp++;
			}
		}
		b.push_back(ans);
	}
	for(int i=0;i<b.size();i++){
		cout<<b[i]<<endl;
	}
	return 0;
}

救救孩子吧

2024/11/30 17:34
加载中...