0分求助,不知道哪有问题
查看原帖
0分求助,不知道哪有问题
578034
okk123456楼主2023/4/4 21:23
#include<bits/stdc++.h>
using namespace std;
int n,m,i,t,j;
char h[1000000005];
long long num[1000005],ten[1000005],ans[100005];
int main(){
	cin>>n;
	getchar();
	gets(h);
	//将字母转为数字字符 
	i = 0;
	while(h[i] != '\0'){
		if(h[i]>'9') num[i] = h[i] - 'A' + 10;
		else num[i] = h[i] - '0';
		i++;
	}
	t = i;
	//换成10进制 
	for(j = 0;j<t;j++,i--){
		ten[j] = num[i-1]*pow(n,j);
		if(j>0) ten[j] += ten[j-1];
	}
	//输入新进制 
	cin>>m;
	//换成新进制
	j = ten[t-1];
	i = 0;
	while(j/m){
		ans[i] = j % m;
		j /= m;
		i++;
	}
	ans[i] = j;
	for(j = i;j>=0;j--){
		if(ans[j]>=10){
			ans[j] += 'A' - 10;
			printf("%c",ans[j]);
		}
		else cout<<ans[j];
	}
	return 0;
}
2023/4/4 21:23
加载中...