본문 바로가기
Java

[Java] 다이아몬드 별 찍기

by bkuk 2022. 9. 26.

출력

 

소스코드

package styudy;

public class halfStarTree {
    public static void main(String[] args) {

        // row 1 => 공백(nbsp) 3, 별(star) 1
        // row 2 => 공백(nbsp) 2, 별(star) 3
        // row 3 => 공백(nbsp) 1, 별(star) 5
        // row 4 => 공백(nbsp) 0, 별(star) 7

		// 출력은 4줄이니, 전체 for문은 4회 반복
        for(int row = 0; row <= 3; row++) {
        
			// 공백(nbsp)은 row가 1씩 증가하면 1씩 감소
            for( int nbsp = 1; nbsp <= 4 - row; nbsp++) {
                System.out.print(" ");
            }
            
            // 별(star)는 row가 1씩 증가하면 ((row +2) +1) 증가
            for( int star = 1; star <= ((row * 2) + 1); star++) {
                System.out.print("*");
            }
                 System.out.println("");
        }

    }
}

 

 

출력

 

소스코드

package styudy;

public class diamondStarTree {
    public static void main(String[] args) {

        // <1구간> 1 ,2 ,3 ,4 번 
        // row가 1씩 증가하면 공백은 1씩 감소, 별은 (row * 2) + 1
        
        // <2구간> 5번 6번 7번
        // row 1씩 증가하면 공백은 1개씩 증가, 별은 2개씩 감소

        for( int row = 0; row <= 6; row++) {

            if(row <= 3) {

                for(int nbsp = 1; nbsp <= (4 - row); nbsp++ ) {

                    System.out.print(" ");
                }

                for(int star = 1; star <= ((row * 2) + 1); star++) {
                    System.out.print("*");
                 }

            }

            if(row >= 4) {

                for(int nbsp = 3; nbsp <= row; nbsp++ ) {

                    System.out.print(" ");
                }

                for(int star = 1; star <= (14 - ((row * 2) + 1)); star++) {
                    System.out.print("*");
                }

            
            }
                 System.out.println("");
        }
    }
}

댓글