私は大学の古い試験問題を勉強して、次の試験の準備をしています。最も単純な問題から最も複雑な問題まで、すべてが簡単に理解できます。しかし、私は一生の間、次のことを理解することはできません。
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を誤って入れたためです。