私は再帰的に新しいです、そして、この再帰的な階乗関数がどのように計算されるのか理解できません。再帰的な階乗を理解できません
私は私の心を持つコードを実行しようと、これは私がそれを視覚化する方法である:
もし数= 4、
第一リターン:4×3
第二リターン:3×2
第三リターン:だからで2×1
私の心は(4 x 3)*(3 x 2)*(2 x 1)ですが、明らかに正しい戻りは4 X 3 X 2 X 1になります。私はそれが4 X 3 X 2 X 1
public static long factorial(long number) {
if (number <= 1)
return 1;
else
{
System.out.println(number + " x " + (number-1));
return number * factorial(number - 1);
}
}
任意の助けを得ず、説明をいただければ幸い方法を理解することができるようにしたいです。
Jonさんが疑問を解決する必要があります。それ以外の場合は、http://www.vogella.com/tutorials/EclipseDebugging/article.htmlを参照してください(デバッガはコードバグを識別するために使用されます)。プログラムフローの多くは、ロジック –
あなたは戻り値ではなく、印刷行を視覚化しています。戻り値は単一のintです。 –