求助
查看原帖
求助
167697
BartAllen楼主2023/1/2 12:54
#include <bits/stdc++.h>
using namespace std;

int n, m, d, len;
string str, an;

//a的b次方
int power(int a, int b) {
	int ans = 1;
	for (; b; b >>= 1) {
		if (b & 1) ans = (long long)ans * a;
		a = (long long)a * a;
	}
	return ans; 
}

int turn1(char ch) {
	if (ch >= 'A' && ch <= 'F') return ch - 'A' + 10;
	else return ch - '0';
}

char turn2(int num) {
	if (num >= 10) return (char)(num - 10 + 'A');
	else return (char)(num + '0');
}

int main() {
	int i, j;
	cin >> n >> str >> m;
	len = str.size();
	for (i = 0; i < len; i++) d += turn1(str[i]) * power(n, len - i - 1);
	int t = 0;
	while (d) {
		an[t++] = turn2(d % m);
		d /= m;
	}
	cout << an << endl;
	return 0;
}

代码输不出字符

2023/1/2 12:54
加载中...