题目:http://codeup.cn/problem.php?cid=100000579&pid=1
问题:
代码:
#include<stdio.h>
#include<string.h>
char z[17]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
int main{
int a,b;
char n[50]={};
while(scanf("%d %s %d",&a,n,&b)!=EOF){
int product=1,y=0;
int len=strlen(n);
int anum[len],i,j=16;
for(i=0;i<len;i++){
while(j){
if(n[i]==z[j]){
anum[i]=j;
break;
}
else j--;
}
}//把字符串转换成整型数组
long long y=0;
while(len--){
y+=anum[len]*product;
product*=a;
}//转换为10进制数
int bnum[50]={0};
i=0,j=0;
do{
bnum[i++]=y%b;
y/=b;
}while(y!=0);//转换为b进制数字字符串
len=strlen(bnum);
char b[50];
for(i=0;i<len;i++){
b[i]=z[bnum[i]];
}//转换为b进制字符串
for(i=len-1;i>+=0;i--){
prinf("%c",b[i]);
}
printf("\n");
}
return 0;
}