看懂这个代码的都是天才


#include<iostream>
using namespace std;
int ans;
int dire [][2]={{-1,0},{1,0},{0,-1},{0,1}};
int vis[7][7];
void dfs(int x,int y){
    if(x==0||y==0||x==6||y==6){
        ans++;
        return;
    }
    vis[x][y]=1;
    vis[6-x][6-y]=1;
    for(int k=0;k<4;k++){
        int nx=x+dire[k][0];
        int ny=y+dire[k][1];
        if(nx<0||nx>6||ny<0||ny>6)continue;
        if(!vis[nx][ny]){
            dfs(nx,ny);
        }
    }
    vis[x][y]=0;
    vis[6-x][6-y]=0;
}
int main(int argc,const char *argv[]){
    dfs(3,3);
    cout<<ans/4<<endl;
    return 0;
}















6*6正方形对称个数

第4行,int ans=0;应该初始化为0,不然后面ans++的基础值不一定是什麽随机值