public class Rekursion { public static void AusgabeMitSchleife(int n) { for (int i = 1; i <= n; i++) { System.out.print(i + ", "); } System.out.println("\nFertig"); } public static void AusgabeMitRekursion(int n) { AusgabeMitRekursion(n, 1); // ALTERNATIV: // System.out.println(AusgabeMitRekursion2(n) + "\nFertig"); } public static void AusgabeMitRekursion(int n, int i) { if (i > n) { // -> Rekursionsanker System.out.println("\nFertig"); return; } System.out.print(i + ", "); AusgabeMitRekursion(n, i+1); } /* ALTERNATIV: public static String AusgabeMitRekursion2(int n) { if (n == 1) { // -> Rekursionsanker return "1, "; } return AusgabeMitRekursion2(n-1) + n + ","; }*/ // Simuliert die mittels RekursionSolSelf zu erreichende Ausgabe. public static void AusgabeTiefe(int n) { // Hin for (int i = 1; i <= n; i++) { EingerueckteAusgabe(i); } System.out.println(); // Zurueck for (int i = n; i >= 1; i--) { EingerueckteAusgabe(i); } System.out.println(); } // Gibt die Zahl mit Einrueckung aus. public static void EingerueckteAusgabe(int n) { for (int j = 1; j <= n; j++) { System.out.print(" "); } System.out.println(n + ""); } public static void AusgabeTiefeRekursiv(int n) { AusgabeTiefeRekursiv(n, 1); } public static void AusgabeTiefeRekursiv(int n, int i) { if (i > n) { // -> Rekursionsanker System.out.println(""); return; } EingerueckteAusgabe(i); AusgabeTiefeRekursiv(n, i+1); EingerueckteAusgabe(i); } public static void main(String[] args) { int n = 0; // n = 10; while (n < 1 || n > 10) { n = readInt("Bitte n (1 <= n <= 10) eingeben:"); } System.out.println("\nAusgabeMitSchleife:"); AusgabeMitSchleife(n); System.out.println("\nAusgabeMitRekursion:"); AusgabeMitRekursion(n); System.out.println("\nAusgabeTiefe:"); AusgabeTiefe(n); System.out.println("\nAusgabeTiefeRekursiv:"); AusgabeTiefeRekursiv(n); } }