c语言 十进制转换二进制 递归
本题要求实现一个函数,将正整数n转换为二进制后输出。
函数接口定义:
void dectobin( int n );
函数dectobin应在一行中打印出二进制的n。建议用递归实现。
裁判测试程序样例:
#include <stdio.h>
void dectobin( int n );
int main()
{
int n;
scanf("%d", &n);
dectobin(n);
return 0;
}
/* 你的代码将被嵌在这里 */
我的答案:
void dectobin(int n)
{
int result = 0;
if (n == 0)
{
printf("0");
}
else if (n == 1)
{
printf("1");
}
else
{
dectobin(n / 2);//这里用到了递归
result = n % 2;
printf("%d", result);
}
}
这里要注意对递归的理解
这里如果n没有对于0,1的话
会一直递归
直到n等于0或1才停止
最后输出是从较小的n向较大n顺序输出的
还没有评论,来说两句吧...