编写一个递归函数实现十进制到二进制转换

2025-03-11 15:39:48
推荐回答(3个)
回答1:

既然是void函数,它就不应有return XXX

楼主把问题复杂化了。简化后的程序如下:
void fun(int n, int r)
{
if (n==0) return;
else fun(n/2,r);
printf("%d",n%2);
}
void main()
{
int n,r=2;
scanf("%d",&n);
fun(n,r);
printf("\n");
}

回答2:

#include
用递归法将一个整数转换成字符串。例如,输入483,应输出字符串“483”这两个递归函数狠类似
void convert(int n)
{
int i;
if ((i=n/10)!=0)
convert(i);
putchar(n%10+'0');
}
main()
{
int number;
printf("\nInput an integer:");
scanf("%d",&number);
printf("Output:");
if (number<0)
{
putchar('-');
number=-number;
}
convert(number);
}

回答3:

#include
void fun(int n)
{
if(n) {fun(n/2);printf("%d",n%2);}
}
void main()
{
int a;
scanf("%d",&a);
fun(a);
}