本题要求实现一个函数,将正整数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;
}
/* 你的代码将被嵌在这里 */
输入样例:
10
输出样例:
1010
我的代码:
void dectobin( int n ){
if(n==1) printf("1");
if(n==0) printf("0");
if(n%2==0&&n!=0){
dectobin(n/2);
printf("0");
}
if(n%2!=0&&n!=1){
dectobin(n/2);
printf("1");
}
}
注意:这题可以先把dectobin(0)~dectobin(10)列出来,找出其中的规律。例如:dectobin(0)=0,dectobin(1)=1,dectobin(2)=10,dectobin(3)=11,dectobin(4)=100,dectobin(5)=101,可以看出dectobin(n)的值是在dectobin(n/2)值的后面加上一个1或者0(n为奇数加1,n为偶数加0)。