gpt4 book ai didi

c++ - 需要帮助理解递归

转载 作者:行者123 更新时间:2023-11-30 01:09:33 25 4
gpt4 key购买 nike

所以在我的类(class)中,我们正在研究递归函数。但我只是不明白它们是如何工作的。

我将使用此代码作为示例。

// n is written to the screen vertically
// with each digit on a separate line.

void write_vertical(int n) {

if (n < 10)
{
cout << n << endl;
}
else // n is two or more digits long
{
write_vertical(n/10);
cout << (n % 10) << endl;
}
}

所以如果 int n = 123; 它将在其自己的行上打印每个数字。这是如何发生的?这个函数是如何一步一步工作的?

最佳答案

随机数测试(13)

我们以13为例。嗯,它不小于 10,所以它会执行 else block ,它会立即用 13/10 执行函数本身,它(作为整数)是 1。现在 1 小于 10 , 所以由于 endl,它会在屏幕上换行打印 1。现在它将返回到之前的函数调用(在使用参数 1 再次调用该函数之前)并执行 13%10。 13 模 10 是 3,因为它的余数变成 3,换行(同样是因为 endl)。瞧,你把数字打印成一条竖线!

future

你应该用铅笔和纸,像我们上面那样自己手动调试。 OR 甚至更好地使用像 GDB 这样的调试器! This是关于如何使用 GDB 进行调试的出色快速入门。

关于c++ - 需要帮助理解递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40120121/

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