Languages/Java

[자바 객체 지향 프로그래밍] 03. 중간고사: 문제 해결 능력 기르기

Dev다D 2021. 2. 26. 22:41
반응형

플로이드의 삼각형

 

파라미터로 정수형 height를 받고, 높이가 height인 '직각 이등변 삼각형'을 출력할텐데요.

이번에는 * 대신 숫자가 순서대로 출력되는 플로이드의 삼각형입니다!

 


package Midterm.Five;

public class Main {
    public static void main(String[] args) {
        ShapePrinter printer = new ShapePrinter();

        // 테스트
        printer.printFloydsPyramid(3);
        System.out.println("----------");
        printer.printFloydsPyramid(5);
        System.out.println("----------");
        printer.printFloydsPyramid(15);
    }
}
package Midterm.Five;

public class ShapePrinter {
    public void printFloydsPyramid(int height) {
        // 숫자 자리 구하기 (5)
        int length = String.valueOf(height * (height + 1) / 2).length();

        // 인쇄될 수 (6)
        int number = 1;


        // 반복문 1 - 행을 바꾸는 반복문 (1)
        for (int row = 1; row <= height; row++) {

            // 한 행에서 인쇄될 내용을 담는 문자열 선언 (3)
            String line = "";

            // 반복문 2 - 한 행에서 열을 바꾸는 반복문 (2)
            for (int col = 1; col <= row; col++) {

                // 반복문 3 - 한 열 안에서 자리수를 맞추는 반복문 (7)
                for (int i = String.valueOf(number).length(); i < length; i++) {
                    line += " ";
                }

                // 실제 인쇄될 수를 문자열에 더하고 한 칸 띄워주기 (8)
                line += (number + " ");
                number++;
            }
            // 출력 (4)
            System.out.println(line);
        }
    }
}

본 내용은 Codeit의  '자바 기초' 강의를
참고하여 작성한 내용입니다.

 

반응형