ログベース2を計算する再帰メソッドを作成しています。log *(1)= 0にする必要があります。log *(4)= 2でなければなりません。問題を理解できませんでした。誰かが私を助けますか?ログベース2の再帰を計算する
public static int logCalculator(double n) {
if (n == 1) {
return 0;
} else {
return 1 + logCalculator(n * n);
}
}
どのように 'logCalculator'を呼びますか?編集:ところで、あなたは決して 'return 0'に達することはないので、elseブランチはスタックオーバーフローにつながることに注意してください。 – StepTNT
'n * n'はこれを呼び出すべき番号ではありません。 (また、 'double'引数を取っても助けにならないでしょう) –
' logCalculator(4) 'を呼び出すと' 0'が得られません。混乱します。スタックオーバーフローが発生しますあなたの再帰は決して終了しないので、例外です。それについては、これまでどのように終了するはずですか?連続して二乗すると、非1の数は決して1に収束しません。 – azurefrog