Figura z 4 lustrzanych trójkątów

0

Hej
Mam zadanie stworzyć program rysujący figurę dla zmiennej n=5 używając pętli zagnieżdżonej oraz if.
Wyglądać ma to tak:

screenshot-20190214111802.png

Moje wypociny doprowadziłym mnie do jednego trójkąta.. Na tym moje zrozumienie kombinacji pętli zagnieżdżonych się skończyło :-( Gdzie i jak dodać pętlę z literkami??

public class Main1 {
public static void main(String[] args) {
int n = 5;
for (int i = 0; i < n; i++) { //tworzę pętlę która będzie generowała mi wiersze
String row = ""; //zmienna która jest na początku każdego wiersza, przechowująca gwiazdki
for (int j = 0; j <= i; j++) { //tworzę pętlę generującą gwiazdki w wierszu ograniczając liczbę pętli do i
row += "* "; //tworzę gwiazdki
}
System.out.print(row + "\n"); //wyświetlam gwiazdki z wiersza i dodaję znak nowej lini
}
}
}
dorzucam zjdęcie. Jeszcze nie wyczaiłem jak wkleić edytowalnie by się nie rozjeżdżało
screenshot-20190214112711.png

1

W tej samej pętli np.

		for(int i=1;i<=5;i++) {
			for(int j=1;j<=5;j++) {
				if(i >= j) {
					System.out.print("*");
				} else {
					System.out.print(j);
				}
			}
			System.out.println();
		}

albo inaczej

		String stars = "*****";
		String numbers = "12345";
		for(int i=1;i<=5;i++) {
			System.out.println(stars.substring(0,i) + numbers.substring(i,5));
		}

Jeszcze w javie8 można na streamach:

		int n = 5;
		for(int i=1;i<=5;i++) {
			System.out.print(IntStream.range(0,i).mapToObj(s -> "*").collect(Collectors.joining("")));
			System.out.println(IntStream.range(i,n).mapToObj(s -> Integer.toString(s)).collect(Collectors.joining("")));
		}
2

Jeszcze trzeba wrócić :P Możesz to zrobić tak:

        for (int i = 0; i < 2 * n; i++) {
            for (int j = 0; j < n; j++) {
                if (i < j) {
                    System.out.print(j);
                } else if (i >= n && j > (2*n)-i-1) {
                    System.out.print(j);
                } else {
                    System.out.print("*");
                }
            }
            System.out.println();
        }
0

Super. Pierwszy sposób rozumiem. Drugi jeszcze nie bardzo.
Dołożyłem do tego drugą figurę odwróconą.
screenshot-20190214121523.png
Myślałem że inicjując zminną "L" na 5 to pierwsza pętla będzie miała jej wartość. A każda następna będzie malała
screenshot-20190214121821.png

ps. jak umieszczasz swój kod w postach ?? by był edytowalny i się nie rozsuwał.

1

W tej drugiej pętli daj System.out.print(6-l) i będzie śmigać.

W celu umieszczenia kodu na forum: podczas pisania posta masz taki pasek narzędzi nad oknem edycyjnym na samym końcu masz taki trójkącik gdzie masz rozwijane menu, wybierasz tam sobie język. Następnie umieszczasz kod między znacznikami.

1 użytkowników online, w tym zalogowanych: 0, gości: 1