私の大学からの古い試験用紙を勉強して、来るべき試験を準備することができます。最も簡単な問題から最も複雑な問題まで、すべてが簡単に理解できます。しかし、私の人生では、次のことを理解することはできません。再帰 - Javaでのこの単純な算術を理解できない
class k{
static int g(int n) {
if (n==0){
return 1;
} else {
return 2*g(n-1);
}
}
public static void main(String[] args) {
System.out.println(g(3));
}
}
なぜこのコードは答えとして8を返しますか?私はそれが基本的には、その数字の入力が2のその数のパワーに計算されているので、この場合の答えは8ですパワー関数を取得します。しかし、実際に何が起こっている。理解できません。誰か簡単な英語で説明できますか?私は本当にそれを感謝します。
ところで、質問は出力が何であるかを尋ねるだけで、理由は問いません。しかし、私はなぜそれが方法であるか分かっていれば、私はもっと快適に感じるでしょう。
PS:例として5を使用して回答しているのは、上記のコードに3の代わりに5を間違えて入れてしまったためです。
これに最も近い方法は「コンピュータを再生する」ことです。鉛筆と紙を使って何が起こるかを正確にトレースします。コールごとに音符をインデントします。簡単な方法でgrok再帰を行うことができます。 –
@ThomasOwens試験紙のプログラムに3の価値があったことをありがとう、私はテストから5を残していたことを忘れていました。私は今それを修正しました。 –
皆様にお返事ありがとうございます。そして、それが5か3であるかどうか混乱していることをお詫びします。 –