P1143 进制转换

题目链接

 

#include<bits/stdc++.h>

using namespace std;

int main() {
	int n, m;
	string s;
	cin >> n >> s >> m;

	int res = 1;
	int ans = 0;
	for (int i = s.size() - 1; i >= 0; i --) { //转化为10进制数
		if (s[i] >= '0' && s[i] <= '9') {
			ans += res * (s[i] - '0');
			res *= n;
		} else {
			ans += res * (s[i] - 'A' + 10);
			res *= n;
		}
	}
	int a[100], cnt = 0;
	while (ans) { //转化为m进制数
		a[++cnt] = ans % m;
		ans /= m;
	}

	for (int i = cnt; i >= 1; i --) { //倒序输出
		if (a[i] >= 10) printf("%c", 'A' + (a[i] - 10));
		else cout << a[i];
	}


}

 

posted @ 2022-10-07 21:54  Luli&  阅读(23)  评论(0编辑  收藏  举报