문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

*********
 *******
  *****
   ***
    *
   ***
  *****
 *******
*********

풀이

#include <stdio.h>

int main() {
    int n;
    scanf("%d", &n);
    for (int i = n; i > 0; i--) {
        for (int k = n-i; k > 0; k--) {
            printf(" ");
        }
        for (int j = i * 2 - 1; j > 0; j--) {
            printf("*");
        }
        printf("\\n");
    }
    for (int i = 1; i < n; i++) {
        for (int k = 0; k < n-1-i; k++) {
            printf(" ");
        }
        for (int j = 0; j <= (i * 2); j++) {
            printf("*");
        }
        printf("\\n");
    }
}

이 문제 또한 별찍기 5번과 6번을 결합하면 됩니다.

바깥 for 반복문이 2개가 있습니다. 첫번째 반복문은 위쪽 삼각형, 두번째 반복문은 아래쪽 삼각형을 출력합니다.

첫번째 반복문은 n부터 시작하여 점점 i값이 감소하고, n번 실행되는 형태입니다. 안에 두개의 내부 for 반복문이 있습니다.

첫번째 내부 반복문은 n-i 만큼 스페이스를 출력합니다.

두번째 내부 반복문은 i * 2 - 1만큼 별을 찍습니다.

두번째 반복문은 1부터 시작하여 n까지 점점 i값이 증가하여 n번 실행되는 형태입니다. 안에 마찬가지 2개의 내부 for 반복문이 있습니다.

첫번째 내부 반복문은 n-1-i만큼 스페이스를 출력합니다.

두번째 내부 반복문은 i*2만큼 별을 찍습니다.