递归函数如何返回 printCountRec(dist-1) + printCountRec(dist-2);在以下代码中工作。按照我的逻辑,printCountRec(dist-1) 函数调用将返回 1,printCountRec(dist-2) 将通过添加这两个函数返回 0,答案应该是 1+0,即 1,但我得到的答案是 3。我不是得到它。
计算覆盖一段距离的方法数的程序; 代码如下-
#include <iostream>
using namespace std;
int printCountRec(int dist)
{
// Base cases
if (dist<0) return 0;
else if (dist==0) return 1;
// Recur for all previous 3 and add the results
else return printCountRec(dist-1) + printCountRec(dist-2);
}
int main()
{
int dist = 3;
cout << printCountRec(dist);
return 0;
}
最佳答案
这就是我如何遵循你的递归:
printCountRec(-1) = 0
printCountRec(0) = 1
printCountRec(1) = printCountRec(0) + printCountRec(-1) = 1
printCountRec(2) = printCountRec(1) + printCountRec(0) = 2
printCountRec(3) = printCountRec(2) + printCountRec(1) = 3
关于c++ - 添加 2 个递归函数是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42954241/