-1
下面的程序應該總結從n到0(負數)或從0到n(正數)的所有偶數。遞歸方法中的StackOverflowError
我不應該使用其他方法或*; * =
的問題是zaehler(counter) == eingabe
(「eingabe的意思是‘在英文輸入’)後,該程序不會停止。我希望你能告訴我怎麼解決這個問題。
import javax.swing.JOptionPane;
public class Toolbox {
public static int eingabe(int eingabe){
if (eingabe < 0) {
evenSum1(eingabe, 0, 0);
} else {
evenSum2(eingabe, 0, 0);
}
return 0;
}
public static int evenSum2(int eingabe, int summe, int zaehler) {
if (PevenSum(eingabe, summe, zaehler) == 0) {
System.out.print("Die Summe aller geraden Zahlen ist: " + summe);
return 0;
}
zaehler = zaehler - 2;
summe = summe - zaehler;
evenSum2(eingabe, summe, zaehler);
return 1;
}
public static int evenSum1(int eingabe, int summe, int zaehler) {
if (NevenSum(eingabe, summe, zaehler) == 0){
System.out.print("Die Summe aller geraden Zahlen ist: " + summe);
return 0;
}
zaehler = zaehler + 2;
summe = summe + zaehler;
evenSum1(eingabe, summe, zaehler);
return 1;
}
public static int NevenSum(int eingabe, int summe, int zaehler) {
if (zaehler == eingabe || zaehler == eingabe + 1) {
return 0;
}
return 1;
}
public static int PevenSum(int eingabe, int summe, int zaheler) {
if (summe == eingabe || summe == eingabe - 1) {
return 0;
}
return 1;
}
public static void main(String[] args) {
String eingabe;
eingabe = JOptionPane.showInputDialog("Hier eine Zahl eingaben");
int zahl = Integer.parseInt(eingabe);
eingabe(zahl);
}
}