ループ内で再帰関数を呼び出すと、2つの問題が発生します。ループ内で再帰関数を呼び出す
int fact(int x)
{
if(x == 1)
return 1;
return x*fact(x-1);
}
int main() {
int n = 2;
for(int i = 0; i < n; i++);
std::cout << fact(4) << std::endl; // 24 ??
return 0;
}
問題1:このプログラムのための私の予想結果は24 24
(2回24
プリンタであることを)私は一つだけ24
を得た実際の結果である 次のサンプルコードを考えてみましょう。
問題2main()
関数が繰り返し呼び出される理由は、私が再帰的にmain関数を呼び出さない理由です。
誰かが複数の出力を得るためにループの中で再帰関数を呼び出す方法について私にあなたの考えを伝えたら素晴らしいと思います。