【发布时间】:2016-09-28 02:03:19
【问题描述】:
我试图了解递归是如何工作的。我似乎不明白这种多重递归是如何工作的。请帮忙,谢谢!
#include<stdio.h>
int R(int x);
int main()
{
R(5);
return 0;
}
int R(int x)
{
if(x > 0){
x--;
R(x);
R(x - 2);
printf("%d ", x);
}
}
【问题讨论】:
-
您可以使用调试器逐行跟踪它。
-
另外,请注意,像这样使用递归是非常糟糕的做法。与其编写这种不必要的复杂代码,不如使用循环。
-
我只能在调试器中逐行看到它,我想了解它为什么会出现在那里。它去那里的逻辑是什么? (我特意写了这样的代码来理解递归。我无法理解 Mergesort 之类的多重递归)