Mal wieder eine Java Lösung, aber ich habs mir zum Ziel gemacht keine Schleifen zu benutzen
Hier also eine rekursive Lösung (Update 0:24Uhr: Code verkürzt und optimiert):
Code:
public class Buchstabenpyramide {
public static void main(String[] args) {
if(args.length != 1) {
System.out.println("Please choose a letter!");
System.exit(0);
}
char dest = args[0].charAt(0);
char[] letters = {'A','B','C','D','E','F','G','H','I','J','K','L',
'M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','['};
int pointer = 0;
int i = 0;
recurse(dest,letters, i);
}
private static void recurse(char dest, char[] letters, int i) {
if(letters[i] == dest+1) return;
int pointer = 0;
spaces(dest,i,0);
single(pointer,letters[i],letters,i);
System.out.println();
recurse(dest,letters, i+1);
}
private static void spaces(char dest, int i, int j) {
if(j == dest-65-i) return;
System.out.print(" ");
j++;
spaces(dest,i,j);
}
private static void single(int pointer, char dest, char[] letters, int i) {
if(pointer >= letters.length || pointer < 0) return;
if(letters[pointer] == dest) {
System.out.print(letters[pointer]);
return;
}
System.out.print(letters[pointer]);
single(pointer+1,dest,letters,i);
System.out.print(letters[pointer]);
return;
}
} Ausgabe:
Code:
xxx@xxx:Buchstabenpyramide$ java Buchstabenpyramide J
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
ABCDEFEDCBA
ABCDEFGFEDCBA
ABCDEFGHGFEDCBA
ABCDEFGHIHGFEDCBA
ABCDEFGHIJIHGFEDCBA Viele Grüße!