案例拓展 编写函数输出一个十进制整数的十六进制形式
编写函数,函数的参数是整数N,在函数中输出整数N的十六进制形式(递归方法实现)。主函数中输入整数a和b,输出从a到b的所有整数的十六进制形式。具体输出格式参考样例。
输入样例:
200 210
输出样例:
C8 C9 CA CB CC CD CE CF D0 D1 D2
输入样例:
20000 20010
输出样例:
4E20 4E21 4E22 4E23 4E24 4E25 4E26 4E27 4E28 4E29 4E2A
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
答案
方法一
#include <stdio.h>
void fun(int a, int b){
printf("%X", a); //printf函数可以直接以16进制的形式来输出
//%d十进制,%o八进制,%X大写16进制,%x小写16进制
if(a == b) return ;
printf(" "); //最后a==b时不需要输出后面的空格
fun(a+1, b);
}
int main(){
int a, b;
scanf("%d %d", &a, &b);
fun(a, b);
return 0;
}
方法二
#include <stdio.h>
char no[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
//或者这里用switch结构来做匹配
void fun(int a){
if(a==0) return ;
fun(a/16);
printf("%c", no[a%16]);
}
int main(){
int a, b, i;
scanf("%d %d", &a, &b);
for(i=a; i<b; i++){
fun(i);
printf(" ");
}
fun(b);
return 0;
}