https://www.acmicpc.net/problem/10992
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
별 찍기 - 15...랑 비슷한 문제인데 마지막 줄을 출력하는게 좀 다르다.
문제의 예시를 보면 알겠지만 규칙성을 찾을 수 있다.
1번줄은 n - 1개의 외부 공백이 존재하며 2부터 n - 1줄까지는 외부 공백이 n - 1개, 내부 공백이 홀수개(2(i - 1) - 1) 존재한다.
여기까지는 별 찍기 -15 문제와 동일하나.. n번째 줄은 n이 1일때를 제외하고 홀수개를 출력하니 2n - 1번을 반복해 별을 찍어주면 된다.
// 10992번 : 별 찍기 - 17
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
// 첫번째 줄
for (int i = 0; i < n - 1; i++)
{
printf(" ");
}
printf("*\n");
// 2 ~ n - 1번째 줄
for (int i = 2; i < n; i++)
{
//외부 공백
for (int j = 0; j < n - i; j++)
{
printf(" ");
}
printf("*");
//내부 공백
for (int j = 0; j < 2 * (i - 1) - 1; j++)
{
printf(" ");
}
printf("* \n");
}
// n번째 줄
if (n != 1)
{
for (int i = 0; i < 2 * n - 1; i++)
{
printf("*");
}
}
return 0;
}