习题10-7 十进制转换二进制 (15 分)

本题要求实现一个函数,将非负整数n转换为二进制后输出。

函数接口定义:

void dectobin( int n );

函数dectobin应在一行中打印出二进制的n。建议用递归实现。

裁判测试程序样例:

#include 
void dectobin( int n );
int main()
{
    int n;
    scanf("%d", &n);
    dectobin(n);
    return 0;
}
/* 你的代码将被嵌在这里 */

输入样例:

10

输出样例:

1010

解题思路:

由于是先递归,再打印,因此可以实现由高位向低位打印。如果是先打印,再递归,则可实现逆序打印。

void dectobin( int n ){
	int k=1;
	if(n==0)	printf("%d",0);//输入为0的特殊情况
	if(n>0){
	//下一个数不为0时才递归
		if((n>>1)!=0)
			dectobin(n>>1);
		//打印第一位
		printf("%d",n&k);
	}
}

你可能感兴趣的:(c语言,开发语言,后端)