【发布时间】:2016-08-27 20:15:02
【问题描述】:
我知道我需要一个程序计数器,我需要跟踪每个递归调用或步骤,这在 for 循环中很容易做到,但对于递归程序来说很难。我对如何计算所有递归步骤感到困惑。到目前为止,这就是我所拥有的。我也在考虑制作我的方法void,但使用int,我至少可以根据最后的步骤尝试return counter,但它不起作用。
int fibRec( int x, int counter )
{
if (x == 0)
return 0;
else if (x == 1)
return 1;
else
{
counter++;
return fibRec((x - 1) + (x - 2), counter);
}
}
【问题讨论】:
-
呃...
int &counter? -
保留一个全局变量怎么样
-
你也可以去掉 counter 参数,声明一个静态 int 计数器,在编译单元内全局共享。
-
如果这应该是斐波那契 - 最后一行有错误。它应该是两个较小的 fib 的总和: ( fibRec(x-1) + fibRec(x-2) )
-
@DOUGLASO.MOEN 哈哈,谢谢,但我知道,我只是在尝试一些新的东西。