본문 바로가기

개발/algorithm

[java] 반복 - 피라미드 만들기 (★)

반응형

Do it 자료구조와 함께 배우는 알고리즘 입문 자바편 

스터디 정리

 

연습문제2 n단의 피라미드를 출력하는 메서드를 작성

p40 Q16

결과 : 입력 5

  *  

 ***

*****

 

해답 

package chap01Practice;
import java.util.Scanner;
// 기호문자 *로 피라미드를 출력함

class StarPira_01_16 {
    static void spira(int n) {
        for (int i = 1; i <= n; i++) {                     // i행 (i = 1, 2, … ,n)
            for (int j = 1; j <= n - i + 1; j++)         // n-i+1개의 ' '를 나타냄
                System.out.print(' ');
            for (int j = 1; j <= (i - 1) * 2 + 1; j++)     // (i-1)*2+1개의 '*'를 나타냄
                System.out.print('*');
            System.out.println();                         // 개행(줄변환)
        }
    }

    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);
        int n;

        System.out.println("피라미드 모양으로 나타냅니다.");

        do {
            System.out.print("단수는 :");
            n = stdIn.nextInt();
        } while (n <= 0);

        spira(n);         // 피라미드를 나타냄
    }
}
 

 

 

연습문제3 n단의 숫자 피라미드를 출력하는 메서드를 작성

 

결과: 입력 4

    1   

   222

  33333

4444444

해답

package chap01Practice;
import java.util.Scanner;
// 숫자를 늘어놓아 피라미드를 출력

class NumPira_01_17 {
    static void npira(int n) {
        for (int i = 1; i <= n; i++) {                     // i행 (i = 1, 2, … ,n)
            for (int j = 1; j <= n - i + 1; j++)         // n-i+1개의 ' '를 나타냄
                System.out.print(' ');
            for (int j = 1; j <= (i - 1) * 2 + 1; j++)     // (i-1)*2+1개의 '*'를 나타냄
                System.out.print(i % 10);
            System.out.println();                         // 개행(줄변환)
        }
    }

    public static void main(String[] args) {
        Scanner stdIn = new Scanner(System.in);
        int n;

        System.out.println("피라미드 모양으로 나타냅니다.");

        do {
            System.out.print("단수는 :");
            n = stdIn.nextInt();
        } while (n <= 0);

        npira(n); // 피라미드를 나타냄
    }
}
 

 

반응형