数独游戏
来源:互联网 发布:魔神召唤士 网络骑士 编辑:程序博客网 时间:2024/05/21 11:20
描述:
数独游戏规则
在9阶方阵中,包含了81个小格(九列九行),其中又再分成九个小正方形(称为宫),每宫有九小格。
游戏刚开始时,盘面上有些小格已经填了数字(称为初盘),游戏者要在空白的小格中填入1到9的数字,
使得最后每行、每列、每宫都不出现重复的数字,而且每一个游戏都只有一个唯一的解答(称为终盘)。
输入:
一个9*9的矩阵,0表示该位置是空白。
输出:
一个9*9的矩阵,格式与输入类似。
输入样例:
900050060020070100300102040703800529000345000516009403050208006007090010030010004
输出样例:
971453268428976135365182947743861529892345671516729483154238796687594312239617854
#include<stdio.h>
int search(int n);
int judge();
int a[9][9];
int b[9];
int main()
{
int i,j;
for(i=0; i<9; i++)
{
scanf("%d",&b[i]);
}
for(i=0; i<9; i++)
{
for(j=8; j>=0; j--)
{
a[i][j]=b[i]%10;
b[i]=b[i]/10;
}
}
search(0);
return 0;
}
int search(int n)
{
int i,j,flag,tmp,num,e,f;
if(n==81)
{
for(i=0; i<9; i++)
{
for(j=0; j<9; j++)
{
printf("%d",a[i][j]);
}
printf("\n");
}
}
else
{
if(a[n/9][n%9]==0)
{
for(i=1; i<=9; i++)
{
flag=1;
for(j=0; j<9; j++)
{
if((i==a[n/9][j]&&j!=n%9)||(i==a[j][n%9]&&j!=n/9))
{
flag=0;
break;
}
}
if(flag==1)
{
tmp=(n/9)/3*3;
num=(n%9)/3*3;
for(e=tmp; e<tmp+3&&flag!=0; e++)
{
for(f=num; f<num+3; f++)
{
if((e!=n/9||f!=n%9)&&a[e][f]==i)
{
flag=0;
break;
}
}
}
}
if(flag==1)
{
a[n/9][n%9]=i;
search(n+1);
a[n/9][n%9]=0;
}
}
}
else
{
search(n+1);
}
}
}
- 数独游戏求解
- 数独游戏
- 数独游戏
- 数独游戏破解
- 数独游戏程序
- 数独游戏
- 数独游戏
- 数独游戏
- 数独游戏
- 数独游戏新篇章
- 数独游戏
- 数独游戏
- 数独游戏
- 数独游戏开发
- 数独游戏
- 数独游戏
- noj1202数独游戏
- python 数独游戏
- bzoj 4878 [Lydsy2017年5月月赛]挑战NP-Hard(dfs)
- leetcode 648. Replace Words
- The computation of homography, essential and fundamental matrix
- Git初次使用
- day01笔记
- 数独游戏
- vijos 夜夜的noip之旅 t1
- 计算并输出1+2+...+n的值
- day02笔记
- Oracle:dual表
- c#创建window service
- C++传参构造的优化和讨论构造拷贝构造N中调用情况
- day03笔记
- 分块查找