🔗문제 풀러가기
단계별로 풀어보기 단계 21의 6번째 문제이다.
위 사진들은 3과 9를 입력하여 나온 실행 결과이다.
입력이 3,9,27...으로 갈 수록
이전 3의 제곱으로 정사각형이 이루어 진다는 것을 알 수 있다.
이를 이용해 큰 정사각형 패턴을 작은 정사각형 패턴으로 나누는 것을 재귀 함수를 이용해 구현하였다.
#include <iostream>
using namespace std;
void DrawStar(int x, int y, int num)
{
if (x % 3 == 1 && y % 3 == 1)
{
cout << " ";
return;
}
else
{
if (num / 3 == 0)
{
cout << "*";
return;
}
DrawStar(x / 3, y / 3, num / 3);
}
}
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
DrawStar(i, j, n);
}
cout << "\n";
}
}