本题要求实现一个函数,将正整数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
#include <stdio.h>
void dectobin( int n );
int main()
{
int n;
scanf("%d", &n);
dectobin(n);
return 0;
}
void dectobin( int n )
{
if(n == 0|| n == 1) printf("%d", n);
else if(n > 1)
{
dectobin(n / 2);
printf("%d", n % 2);
}
}
非递归版本
#include <stdio.h>
void dectobin( int n );
int main()
{
int n;
scanf("%d", &n);
dectobin(n);
return 0;
}
void dectobin( int n )
{
int m, remain;
int a[100];
int i;
m = n;
for(i = 0; ;i++)
{
remain = m % 2;
a[i] = remain;
m = m / 2;
if(m == 0) break;
}
int k;
for(k = i; k >= 0; k--)
{
printf("%d", a[k]);
}
}