题解

凌艺樽  •  4个月前


#include <bits/stdc++.h>
using namespace std;
const int N=1e7+10;
const int INF=0x3f3f3f3f;
int a[500],w,n,ans;
char s[500]; 
int main()
{
	while(cin>>w>>s>>n)
	{
		int len=strlen(s),p=0;
		for(int i=len-1;i>=0;i--)
		{
			if(s[i]<='z' && s[i]>='a')
			{
				ans+=(s[i]-'a'+10)*pow(w,p);
			}	
			else if(s[i]<='Z' && s[i]>='A')
			{
				ans+=(s[i]-'A'+10)*pow(w,p);
			}
			else if(s[i]<='9' && s[i]>='0')
			{
				ans+=(s[i]-'0')*pow(w,p);
			}
			p++;
		}
		int l=0;
		while(ans!=0)
		{
			a[++l]=ans%n;
			ans/=n;
		}
		for(int i=l;i>=1;i--)
		{
			if(a[i]>=10)
			{
				char hhh='A';
				hhh+=a[i]-10;
				cout<<hhh;
			}
			else
			{	
				cout<<a[i];
			}
		}
		cout<<endl;
	}
	return 0;
}


评论: