백준 10994 c

magicdrill·2024년 4월 1일

백준 문제풀이

목록 보기
239/673

백준 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;
}

0개의 댓글