-Layer7 백준 별찍기 8-

2023. 4. 9. 14:23Layer7

 

입력을 받고 오른쪽과 같이 별을 출력 해야 한다.

 

#include <stdio.h>

int main() {
    int n;
    scanf("%d", &n);

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= i; j++) {
            printf("*");
        }
        for (int j = 1; j <= 2 * (n - i); j++) {
            printf(" ");
        }
        for (int j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }

    for (int i = n - 1; i >= 1; i--) {
        for (int j = 1; j <= i; j++) {
            printf("*");
        }
        for (int j = 1; j <= 2 * (n - i); j++) {
            printf(" ");
        }
        for (int j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

 

작성한 코드는 위와 같다.

 

코드 해설:

 

 코드에서 정수 N을 입력받아 두개의 중첩 for 문을 사용하여 별을 출력한다. 첫번째 반복문에서는 전체 출력의 상단인 절반을 출력하고 나머지 2번째 for문에서는 아래 절반을 출력한다.

필요한 수의 별표를 i로 지정하여 출력하며 두번째 for문에서는 각행마다 필요한 공백의 출력을 담당한다.

 나머지 코드들도 비슷한 방법으로 출력하지만 n-1에서부터 시작되어 역순으로 실행하여 점차적으로 별의 숫자가 줄어드는 식의 알고리즘으로 구성되어 있다.

 

참조 링크: https://coding-factory.tistory.com/383

'Layer7' 카테고리의 다른 글

-Layer7 백준 단어의 개수 C  (0) 2023.04.09
-Layer7 백준 -코딩은 체육과목입니다.-  (0) 2023.04.09
-Layer7 별찍기 9  (0) 2023.04.09
-백준- 상수 -Layer7 과제-  (0) 2023.04.04
-백준- 영수증 25304 문제 -Layer7 과제-  (0) 2023.04.04