解题
- 首先要读懂题目的意思,题目的描述中出现了很多额外信息,但是对于解题来说似乎意义不大。一句话概括题目的要求就是把输入的十进制数转换成十六进制输出即可。
- 由于十进制数在[0, 153]范围,对应最大的十六进制是99,不会出现字母情况,故不用考虑。
- 知道了能转换成的最大十六进制数是99,只需要用输入的10进制数除以16,根据进制转换规则对结果进行处理合并即可。
关键点
- 理解题意
- 进制转换
- 结果处理与合并
参考代码
#include <cstdio>
int main()
{
//输入的是10进制数,转换时不会出现字母
int d_10,d_16;
scanf("%d",&d_10);
// 采用除模倒取余数,最多只有2两位,无需使用循环
int b=d_10/16;
d_16=b*10+(d_10-b*16);
//输出正确的16进制数
printf("%d
", d_16);
return 0;
}