Einzelnen Beitrag anzeigen
Alt 19.07.10, 20:15   #26 (permalink)
cByte
 
Registriert seit: 30.12.08
cByte Leistung: Facit NTK
Likes: 0
Standard

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!

Geändert von cByte (20.07.10 um 00:24 Uhr)
cByte ist offline   Mit Zitat antworten
 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61