再帰関数はどのようにしてprintCountRec(dist-1)+ printCountRec(dist-2)を返しますか?次のコードで動作します。私のロジックによってprintCountRec(dist-1)関数呼び出しは1を返し、printCountRec(dist-2)はこれら2つを加算することによって0を返します。答えは1 + 0すなわち1でなければなりませんが、3として答えを得ています。それを得る。2再帰関数の追加の仕組み
距離をカバーする方法の数のためのプログラム;これは私があなたの再帰以下てる方法です
#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;
}
なぜこれをCでタグ付けしましたか?これは有効なCコードではありません。また、デバッガを使用して、コードを実行して何をしているのかを理解することを学ぶ必要があります。 – UnholySheep
デバッガでコードをステップ実行する必要があります。それはプログラムの流れを正確に示してくれます。 – NathanOliver