为什么会死循环啊
#include<iostream>
#include<cmath>
using namespace std;
int n;
const int maxn = 1050;
int arr[maxn][maxn];
void fun( int x1, int y1, int x2, int y2)
{
if (x2-x1==1&&y2-y1==1)
{
arr[x1][y1] = 0;
return;
}
for (int i = 1; i <= x2 >> 1; i++)
for (int j = 1; j <= y2 >> 1; j++)
arr[i][j] = 0;
fun( x1, (y2 >> 1) + 1, (x2 >> 1), y2);
fun( (x2 >> 1) + 1, y1, x2, y2 >> 1);
fun( (x2 >> 1) + 1, (y2 >> 1) + 1, x2, y2);
}
int main()
{
scanf("%d", &n);
for (int i = 1; i <= pow(2, n); i++)
for (int j = 1; j <= pow(2, n); j++)
arr[i][j] = 1;
fun(1, 1, pow(2, n), pow(2, n));
for (int i = 1; i <= pow(2, n); i++)
{
for (int j = 1; j <= pow(2, n); j++)
printf("%d ", arr[i][j]);
printf("\n");
}
}