Raute rekursiv programmieren?
Hallo ich habe hier ein Problem bei der Programmierung. Hier ist meine Aufgabenstellung:
Schreiben Sie eine Anwendung Raute.java, welche ein Raute ausgibt. Der Nutzer soll zuvor die Größe n der Raute eingeben können. Bei geraden Eingaben (n gerade) soll der Text: „Das Programm arbeitet nur mit ungeraden Werten.“ ausgegeben werden. Bei ungeraden Eingaben (n ungerade) soll eine Raute der Höhe n ausgegeben werden.
Das ist mein Quellcode (allerdings kommt nicht ganz das raus was ich brauche^^):
/* * Erzeugen einer Raute-rekursiv */ import java.util.Scanner; public class Raute { public static void main(String[] args) { Scanner scan = new Scanner(System.in); // Eingabe System.out.println("Geben Sie die Größe Ihrer Raute ein(nur ungerade Werte):"); int groesse = scan.nextInt(); // Bedingung --> gerade Werte werden nicht // vom Programm bearbeitet (+ Ausgabe) if (groesse % 2 == 0) { System.err.println("Das Programm arbeitet nur mit ungeraden Werten!"); } else { // Berechnung: resultat(groesse); } } public static String methode1(int groesse) { if (groesse > 0) { return "* " + methode1(groesse - 1); } else { return " "; } } public static String methode2(int groesse) { if (groesse > 0) { return "* " + methode1(groesse - 1); } else { return " "; } } public static String space(int groesse) { if (groesse > 0) { return " " + space(groesse - 1); } else { return " "; } } public static void resultat(int groesse) { for (int i = 1; i < groesse; i++) { System.out.println(space(groesse - i)); System.out.println(methode1(i)); } for (int i = 0; i < groesse; i++) { System.out.println(methode2(groesse - i)); System.out.println(space(i)); } } }
Z.B.: groesse = 5
Ausgabe:
* * * * * * * * * * * * * * * *