湖南大学夏令营c语言考试题,人大信息学院2017年夏令营机试题目(一)

第一题:进制转换

题面:给出一个十进制非负整数n,请将该数转换为r进制数并输出。 0≤n≤1000000000,2≤r≤16。超出十进制的,字母大写输出。输入共一行,输出共一行。

输入样例:126 16

输出样例:7E

解:

#include"stdio.h"

int trans1(int num,int r){

if (num>=r)

return num%r+trans1(num/r,r)*10;

else

return num;

}

char check(int num){

if (num==10)

return 'A';

else if (num==11)

return 'B';

else if (num==12)

return 'C';

else if (num==13)

return 'D';

else if (num==14)

return 'E';

else if (num==15)

return 'F';

else

return num;

}

void trans2(int num,int r){

if (num>=r){

trans2(num/r,r);

if (check(num%r)<10)

printf("%d",check(num%r));

else

printf("%c",check(num%r));

}

else

if (check(num)<10)

printf("%d",check(num));

else

printf("%c",check(num));

}

void main(){

int num;

int r;

int out;

scanf("%d %d",&num,&r);

if(r<10){

out=trans1(num,r);

printf("%d",out);

}

else

trans2(num,r);

system("pause");

}

结果:

bc6854fc66ef?utm_campaign=haruki&utm_content=note&utm_medium=reader_share&utm_source=qq

image.png

bc6854fc66ef?utm_campaign=haruki&utm_content=note&utm_medium=reader_share&utm_source=qq

image.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值