文章

7

粉丝

318

获赞

0

访问

64.7k

头像
4u3
P1422 清华大学/厦门大学机试题
发布于2020年3月7日 18:10
阅读数 9.0k

#include<stdio.h>
#include<string.h>
int main()
{
int M,N,string,i,r;
char s[105];//因为可能是十六进制的数,所以设定为字符串形式
scanf("%d%d",&M,&N);
scanf("%s",&s);
int ans=0;//先将该进制的数转换为十进制的数
string=strlen(s);
for(i=0;i<string;i++)
{
if(s[i]>'9')//字符大于9字符的情况
    ans=ans*M+s[i]-'A'+10;
    else//字符小于等于9字符的情况
    ans=ans*M+s[i]-'0';
}
char s2[105];//将十进制的数转为N进制的数
i=0;
while(ans>0)
{
if(N>10)
    s2[i++]=ans%N+'A'-10;
else
    s2[i++]=ans%N+'0';
ans=ans/N;
}    
r=i-1;//反向输出
for(i=r;i>=0;i--)
    printf("%c",s2[i]);
return 0;    
}

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发