백준 10994 c
#include <stdio.h>
#pragma warning(disable:4996)
char table[400][400]; //n * 4 - 3
int input(int lower, int upper)
{
//cout << "input()" << endl;
int A;
while (1)
{
scanf("%d", &A);
if (A >= lower && A <= upper)
{
break;
}
else
{
;
}
}
return A;
}
void table_init(int N)
{
int i, j, n = N * 4 - 3;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
table[i][j] = ' ';
}
}
return;
}
void star(int n, int x, int y)
{
if (n == 1)
{
table[y][x] = '*';
return;
}
else
{
int i, j, k = 4*n-3;
for (i = 0; i < k; i++)
{
if (i == 0 || i == k-1)
{
for (j = 0; j < k; j++)
{
table[i+y][j+x] = '*';
}
}
else
{
table[y + i][x] = '*';
table[y + i][x + k-1] = '*';
}
}
star(n-1, x + 2, y + 2);
return;
}
}
void print_star(int N)
{
int i, j;
int n = N * 4 - 3;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
printf("%c", table[i][j]);
}
printf("\n");
}
return;
}
int main(void)
{
int N;
N = input(1, 100);
table_init(N);
star(N, 0, 0);
print_star(N);
return 0;
}