10分求助
查看原帖
10分求助
263846
Liangjm楼主2021/3/14 08:50
#include<iostream>
#include<cstdio>
#include<cstring>
int in[1001],out[1001];
using namespace std;

int cifang(int a, int b){
    int ret=1;
    for(int i=1;i<=b;i++) ret*=a;
    return ret;
}

int main(){
    int n,m;
    string put_in;
    cin>>n>>put_in>>m;
    for(int i=put_in.size()-1;i>=0;i--){
        if(put_in[i]>='A'&&put_in[i]<='F') in[put_in.size()-i-1]=10+(int)(put_in[i]-'A');
        else in[put_in.size()-i-1]=(int)(put_in[i]-'0');
    }
    long in_number=0;
    for(int i=0;i<=put_in.size()-1;i++){
        in_number+=in[i]*cifang(n,i);
    }
    int for_for;
    for(int i=0;in_number!=0;i++){
        out[i]=in_number%m;
        in_number/=m;
        for_for=i;
    }
    for(int i=for_for;i>=0;i--){
        if(out[i]<10) printf("%d",out[i]);
        if(out[i]>=10) printf("%c",(char)(out[i]-10+'A'));
    }
    return 0;
}
2021/3/14 08:50
加载中...