以下のプログラムは、nから0(負の数)または0からn(正の数)までのすべての偶数を集計する必要があります。再帰的メソッドのStackOverflowError
他の方法や*を使用しないでください。 * =
問題は、私はあなたが問題を解決する方法を教えてくださいことを願って。
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);
}
}