gpt4 book ai didi

有人可以解释一下这个程序是如何工作的吗?它通过递归函数显示数字的二进制等价物

转载 作者:行者123 更新时间:2023-11-30 20:36:32 25 4
gpt4 key购买 nike

#include <stdio.h>
#include <math.h>

int binary(int);

void main()
{
int num;
printf("Enter the number:\n");
scanf_s("%d", &num);
binary(num);
}

int binary(int num)
{
int rem;
rem = num % 2;
num = num / 2;
if(num == 0)
{
printf("\nThe binary equivalent is %d", rem);
return rem;
}
else
binary(num);
printf("%d", rem);
}

我无法理解这里 return 语句的工作原理。它返回值到什么?我想知道最终的输出结果如何。假设我们将“8”作为输入,则输出 1000,这相当于“8”的二进制。但我无法开始工作。

最佳答案

我正在尝试逐步解释。

int num;
printf("Enter the number:\n");
scanf("%d",&num);

此代码从用户处获取十进制数。然后调用函数binary(num);

binary(num)函数中:

int binary(int num)
{
int rem;
rem=num%2;
num=num/2;
if(num==0)
{
printf("\nThe binary equivalent is %d",rem);
return rem;
}
else
binary(num);
printf("%d",rem);
}

首先,您必须知道如何将十进制数字转换为二进制。在这个递归函数中,工作已经完成。

if(num==0) 

表示如果 num 为零,则它将终止并返回二进制值 rem。我们将二进制值存储在 rem 中。

否则将继续并再次调用函数binary()来计算剩余的数字。

关于有人可以解释一下这个程序是如何工作的吗?它通过递归函数显示数字的二进制等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35811939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com