1.对于多点测试必须EOF
2.输入0~F需要分类讨论
#include<cstdio>
#include<string.h>
#include<iostream>
using namespace std;
int main(){
char x[100];
int p;
int p2;//48
while(scanf("%d%s %d",&p,x,&p2)){
int product=1;
long y=0;
int n = strlen(x);
// printf("%d ",n);
for(int i=n-1;i>=0;i--){
if(x[i]<58&&x[i]>=48)x[i]-='0';
else if(x[i]>=65&&x[i]<80)x[i]-=55;
else x[i]-=87;
y=y+(x[i])*product;
product *=p;
}
//printf("%ld",y);
char z[80],num=0;
do{
if(y%p2<10){
z[num++]=y%p2+48;
}else
z[num++]=y%p2+55;
y/=p2;
}while(y!=0);
for(int i=num-1;i>=0;i--){
printf("%c",z[i]);
}
printf("\n");
}
return 0;
}