한줄에 해당하는 포문을 돌면서 빈공간을 찾아내는데, 그것이 i/num 을 3으로 나눈 나머지가 1일 경우이다.
1, 4, 7 ...
그리고 num을 3을 나누어주며 재귀를 진행한다.
#include <iostream>
using namespace std;
void star(int i, int j, int num)
{
if ((i / num) % 3 == 1 && (j / num) % 3 == 1) {
cout << ' ';
}
else
{
if (num / 3 == 0)
cout << '*';
else
star(i, j, num / 3);
}
}
int main() {
int num;
cin >> num;
for (int i = 0; i < num; i++)
{
for (int j = 0; j < num; j++)
star(i, j, num);
cout << '\n';
}
}