C语言题目,高分求解

2025-03-05 04:50:54
推荐回答(1个)
回答1:

#include  
 
int book[10][10];  
int dire[4][2]={-1,0,1,0,0,-1,0,1};  
const int N=6;  
int ans;  
void dfs(int x,int y)  
{  
int i,nx,ny;
    if(x==0||y==N||x==N||y==0){  
        ans++;return;   
    }     
    for( i=0;i<4;i++)  
    {  
        nx=x+dire[i][0];  
        ny=y+dire[i][1];  
        if(nx<0||nx>N||y<0||ny>N)continue;  
        if(!book[nx][ny])  
        {  
            book[nx][ny]=1;  
            book[N-nx][N-ny]=1;  
            dfs(nx,ny);  

            book[nx][ny]=0;  
            book[N-nx][N-ny]=0;  
        }  

    }  
}  
int main()  
{  
    book[N/2][N/2]=1;  
    dfs(N/2,N/2);  
    printf("%d",ans/4);  
    return 0;  


509Press any key to continue