を投げ、私は自分のコードを実行しようとすると、私はエラーによってjava.lang.StackOverflowErrorを得る:再帰関数がjava.lang.StackOverflowErrorを
public class calc {
public static void main(String[] args){
double zahl = 847362;
System.out.println(wannawoerk(zahl));
}
public static double wannawoerk(double zahl){
if (zahl == 1)
return 1;
else
return wannawoerk(zahl - 1) + zahl;
} }
は、この問題の任意の回避策はありますか?私はのためにせずに再帰関数を使用する必要があり、一方で、など
なぜ 'double'ですか?ここで問題となるのは、A)スタックが847,361フレームの深さになることはできません(それについて考える、それは大変です)か、B)IEEE-754倍精度バイナリ浮動小数点のゲームとゲームです。私は(A)と思われますが、 –
"アプリケーションの再帰が深すぎるためにスタックオーバーフローが発生した場合にスローされます。" – eldo