Layer7
-Layer7 백준 별찍기 8-
KSJ._.seven11
2023. 4. 9. 14:23
입력을 받고 오른쪽과 같이 별을 출력 해야 한다.
#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에서부터 시작되어 역순으로 실행하여 점차적으로 별의 숫자가 줄어드는 식의 알고리즘으로 구성되어 있다.