1 条题解

  • 2
    @ 2023-6-4 16:15:21

    思路:先将任意进制转成十进制再将十进制转换成任意进制

    进制转换资料:

    https://oi-wiki.org/math/base/

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
     
    int n,m;
    ll k;
     
    int b[105];
    int c[105];
     
    string a;
     
    int main()
    {
    	cin>>n;
    	cin>>a;
    	cin>>m;
    	int po=0;
    	int cnt=0;
    	for(int i=0;i<a.length();i++){
    		if('0'<=a[i]&&a[i]<='9')
    		    b[++cnt]=a[i]-48;
            if('A'<=a[i]&&a[i]<='Z')b[++cnt]=a[i]-'A'+10;
    	}
    	for(int i=cnt;i>=1;i--)k+=b[i]*pow(n,po++);
    	cnt=0;
    	while(k>0){
    		c[++cnt]=k%m;
    		k/=m;
    	}
    	for(int i=cnt;i>=1;i--){
    	    if(c[i]>=10)cout<<char(c[i]+'A'-10);
    		else cout<<c[i];
    	}
    	return 0;
    }
    

    信息

    ID
    131
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    19
    已通过
    7
    上传者