1
したがって、1つのパラメータnを持つ再帰的メソッドがあり(ループを使用することはできません)、プログラムは2^n "*"を出力します。たとえば、nが2の場合、出力は****、nが3の場合、出力は********です。java単純な再帰
私はいくつかの無限の再帰問題に遭遇したので、私はこの問題を抱えています。
最初に私はこれを持っていましたが、すぐにnがチェックに達することはありません。 1 + n個になるはずだった
↑↑↑(それが動作していなくても)
は、その後、私はこれを試してみました:
public class test {
public static void main(String[] args) {
printPowerOfTwoStars(3);
}
public static void printPowerOfTwoStars(int n){
n = (int)Math.pow(2, n);
if(n == 0){
return;
}
else{
System.out.print("*");
printPowerOfTwoStars(n-1);
}
}
}
は、いくつかの無限再帰に走りました再び。
これはシンプルなロジックの単純なプログラムのようですが、nと比較されているものが変化し続けるため、条件チェックに問題があります。
この問題を解決するにはどうすればよいですか?
ヘルパーメソッドを使用せずに静的変数を作成しないでください。
あなたはn
のパワーに2がちょうど2 n-1
のパワーに、倍増しているという事実を使用する必要があなたに
それは素晴らしいです!この場合、Math.powを使用する方法があるのであれば、今私は興味があります。ありがとうございました! – yyin
「Math.pow」を使うのは難しいと思っていました。 –
問題が3^n回印刷された場合、どのようにこの問題を実装しますか?同じロジックを使って、** 3^nは3^n-1で、3倍(3^n-1)x 3 = 3^n **です。それはちょうど 'printPowerOfTwoStars(n-1);' 3回ですか? – yyin