#include<iostream>
#include<memory.h>
#include<math.h>
using namespace std;
int n,aim[2500][2500];
void f(int num[2500][2500],int x,int y,int l)
{
if(l<1) return;
for(int i=0;i<l/2;i++)
for(int t=0;t<l/2;t++)
num[x+i][y+t]=0;
f(num,x,y,l/2);
f(num,x,y+l/2,l/2);
f(num,x+l/2,y,l/2);
f(num,x+l/2,y+l/2,l/2);
return;
}
int main()
{
cin >> n;
for(int i=1;i<=pow(2,n);i++)
for(int t=1;t<=pow(2,n);t++)
aim[i][t]=1;
f(aim,1,1,pow(2,n));
for(int i=1;i<=pow(2,n);i++)
{
for(int t=1;t<=pow(2,n);t++)
{
cout << aim[i][t] << " ";
}
cout << endl;
}
}
在函数f的调用参数中,二维数组为什么要写上大小,一维数组不是不用写吗,还有一个疑惑的地方是memset函数不能给二维数组赋值为1(本人刚学两个月多知识点还不知道(保命))