210107|標準2477|C++


2477号:星を撮る
i/numを3で割った残りの値が1の場合、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';
    }
}