작성한 코드는 다음과 같다.
NxN 행렬을 중첩 for문을 통해 돌며 " " 또는 "*"를 출력하도록 했다.
나눈 나머지가 1인 부분은 " "를 출력하고 그 외의 부분은 "*"를 출력한다.
그 외의 경우는 재귀함수를 사용해 N/3을 계산하여 행렬을 작은 3x3행렬로 나누어져 고려되도록 했다,
#include <iostream>
using namespace std;
void star(int i, int j, int N) {
if((i/N)%3==1 && (j/N)%3==1)
cout << " ";
else if(N/3==0)
cout << "*";
else
star(i, j, N/3);
}
int main() {
int N;
cin >> N;
for(int i=0; i<N; i++) {
for(int j=0; j<N; j++)
star(i, j, N);
cout << "\n";
}
return 0;
}
'백준' 카테고리의 다른 글
백준 17425 약수의 합, c++ (0) | 2024.02.15 |
---|---|
백준 1038번: 감소하는 수, c++ (0) | 2024.02.02 |
백준 2493번: 탑, c++ (0) | 2024.01.30 |
백준 1922번: 네트워크 연결, c++ (0) | 2024.01.30 |
백준 14503번: 로봇 청소기, c++ (0) | 2024.01.29 |