gpt4 book ai didi

谁能逐行解释这个简单的 'binary representation of a number with recursion' 程序是如何运行的?

转载 作者:行者123 更新时间:2023-11-30 18:29:23 24 4
gpt4 key购买 nike

这是代码。请解释一下递归部分。它不应该只打印 0 吗?

#include<stdio.h>
void bin(unsigned n)
{

if (n > 1)
bin(n/2);


printf("%d ", n % 2);
}

void main(void)
{
bin(7);
printf("\n");
bin(4);
}

最佳答案

下面,不同的缩进级别代表不同的递归级别。

bin (7)
n is greater than 1, so calls bin(7/2), i.e. bin(3)

bin(3)
n is greater than 1, so calls bin(3/2), i.e. bin(1)

bin(1)
n is NOT greater than 1, so bin(1/2) is NOT called, i.e. last step of recursion
prints (1 % 2) => prints 1
bin(1) returns

prints (3 % 2) => prints 1
bin(3)returns

prints (7 % 2) => prints 1
bin(7) returns

因此,1 1 1 被打印在屏幕上。

<小时/>

您可以尝试为 bin(4) 创建类似的流程。另请尝试使用 bin(2)bin(1)bin(0)

关于谁能逐行解释这个简单的 'binary representation of a number with recursion' 程序是如何运行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38689787/

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