本题要求实现一个函数,将非负整数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 )
{
int r;
if(n==0){
r=0;
}
else if(n==1){
r=1;
}
else{
r=n%2;
dectobin(n/2);
}
printf("%d",r);
}
1.首先dectobin不返回任何值,所以不能写成r=n%2+dectobin(n/2)*10;
2.运用递归函数的好处是函数一层一层往前推,会把前面的数先输出来,满足十进制的书写法则。