#include<cstdio>
#include<cmath>
#include<cstring>
int a,b,len;
const char part[7]={'A','B','C','D','E','F'};
int c[1001];
long long num;
char ans[1001];
void sb_to_ten(){
for(int i=0;i<len;i++){
num=num+c[i]*pow(a,len-i-1);
}
return;
}
void ten_to_sb(long long num){
if(num==0) return;
ten_to_sb(num/b);
if(num%b>9) printf("%c",part[num%b-10]);
if(num%b<10) printf("%d",num%b);
return;
}
int main(){
scanf("%d ",&a);
while(1){
char p=getchar();
int k;
if(p==' '||p=='\n') break;
if(p>='a'&&p<='z') k=p-'a'+10;
if(p>='A'&&p<='Z') k=p-'A'+10;
if(p>='0'&&p<='9') k=p-'0';
c[len++]=k;
}
scanf("%d",&b);
sb_to_ten();
ten_to_sb(num);
return 0;
}
样例过了,第一个点貌似过了,但是0分。
不理解
救助