前言
十进制转换成二进制
给定任意一个非负十进制整数,请利用递归的方式,求解它的二进制表示方式
代码
1.代码
代码如下(示例):
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
/*
十进制转换成二进制
给定任意一个非负十进制整数,请利用递归的方式,
求解它的二进制表示方式
基本的思路是:把该整数除以2得到余数,然后倒着输出余数。
思考一下:如何实现倒着打印余数呢?
*/
void tran(int n) {
if (n == 0) {
return ;
}
tran(n / 2);
int remainder = n % 2;
printf("%d",remainder);
}
int main(void) {
int n;
printf("输入一个十进制数:\n");
scanf("%d", &n);
printf("对应的二进制数为:\n");
tran(n);
printf("\n");
return 0;
}
2.输出样例
总结
基本的思路是:把该整数除以2得到余数,然后倒着输出余数。
倒着输出余数,将递归函数体放在取余之前,先递归再回溯打印。
如果取余放在递归函数体前,就会逐层打印。输出就是正序的。