就过了第一个点,样例没问题。
查看原帖
就过了第一个点,样例没问题。
423006
傻肥狍子楼主2021/4/10 22:34
#include <bits/stdc++.h>
using namespace std;
int n,m,ans;
char a[1000000];
int b[1000001];
int main()
{
	scanf("%d%s%d",&n,a,&m);
	int len=strlen(a);
	for(int i=0; i<len; i++){	
		if(a[i]=='A'){
			b[i]=10;
		}else if(a[i]=='B'){
			b[i]=11;
		}else if(a[i]=='C'){
			b[i]=12;
		}else if(a[i]=='D'){
			b[i]=13;
		}else if(a[i]=='E'){
			b[i]=14;
		}else if(a[i]=='F'){
			b[i]=15;
		}else
		b[i]=a[i]-'0';
	}
	for(int i=0; i<len; i++){
		ans+=b[i]*pow(n,i);
	}
	int i=0;
	while(ans){
		b[i]=ans%m;
		ans/=m;
			if(b[i]==10){
			a[i]='A';
		}else if(b[i]==11){
			a[i]='B';
		}else if(b[i]==12){
			a[i]='C';
		}else if(b[i]==13){
			a[i]='D';
		}else if(b[i]==14){
			a[i]='E';
		}else if(b[i]==15){
			a[i]='F';
		}else
		a[i]=b[i]+'0';
		i++;
	}
	for(int j=i-1; j>=0; j--){
		cout<<a[j];
	}
	return 0;
}
2021/4/10 22:34
加载中...