當前位置:編程學習大全網 - 源碼下載 - 全球最難的“數獨遊戲”答案是什麽?

全球最難的“數獨遊戲”答案是什麽?

#include<stdio.h>

int area[10][10];

bool check[10][10],row[10][10],line[10][10];

void Dfs(int x,int y)

{

if(y==10&&x==9)

{

for(int i=1;i<=9;i++)

{

for(int j=1;j<=9;j++)printf("%d ",area[i][j]);

printf("\n");

}

//ans++;

return;

}

else if(y==10&&x!=9)Dfs(x+1,1);

else if(area[x][y])Dfs(x,y+1);

else

{

for(int i=1;i<=9;i++)

{

if(!row[x][i]&&!line[y][i]&&!check[(x-1)/3*3+(y+2)/3][i])

{

row[x][i]=true;

line[y][i]=true;

check[(x-1)/3*3+(y+2)/3][i]=true;

area[x][y]=i;

Dfs(x,y+1);

row[x][i]=false;

line[y][i]=false;

check[(x-1)/3*3+(y+2)/3][i]=false;

area[x][y]=0;

}

}

}

}

int main()

{

freopen("9num.in","r",stdin);

freopen("9num.out","w",stdout);

for(int i=1;i<=9;i++)

for(int j=1;j<=9;j++)

{

scanf("%d",&area[i][j]);

check[(i-1)/3*3+(j+2)/3][area[i][j]]=true;

row[i][area[i][j]]=true;

line[j][area[i][j]]=true;

}

Dfs(1,1);

//printf("%d",ans);

fclose(stdin);

fclose(stdout);

return 0;

}

用這個不是更快?

  • 上一篇:論丁的四字成語接龍。
  • 下一篇:FC模擬器樂的吞食天地的修改器,或金手指地址或代碼
  • copyright 2024編程學習大全網