1202 数独游戏
来源:互联网 发布:mysql 1064 syntax 编辑:程序博客网 时间:2024/05/16 04:16
#include<iostream>using namespace std;int a[9][9];void search(int m);int test(int x,int m);void output();int main(){int i,j;char ch;for(i=0;i<9;i++)//输入时不能直接输入,否则会将一个九位数读入{for(j=0;j<9;j++){cin>>ch;a[i][j]=ch-'0';}}search(0);}void search(int m){int i;if(m==81){output();}else{if(a[m/9][m%9]==0)//判断此位置是否为零{for(i=1;i<=9;i++){if(test(i,m))//测试是否满足条件{a[m/9][m%9]=i; search(m+1);a[m/9][m%9]=0;}}}else{search(m+1);}}}int test(int x,int m){int i,j,flag=1,row,col;row=m/9;col=m%9;for(i=0;i<9;i++)//判断每行是否有重复{if(i!=col&&x==a[row][i]){flag=0;break;}}for(i=0;i<9;i++)//判断每列是否有重复{if(i!=row&&x==a[i][col]) {flag=0;break;}}for(i=row/3*3;i<row/3*3+3;i++)//判断每个小九宫格是否有重复{for(j=col/3*3;j<col/3*3+3;j++){if((i!=row&&j!=col)&&a[i][j]==x){flag=0;break;}}}return (flag);}void output(){int i,j;for(i=0;i<9;i++){for(j=0;j<9;j++){cout<<a[i][j];}cout<<endl;}}
数独游戏
时限:1000ms 内存限制:10000K 总时限:3000ms
描述:
数独游戏规则
在9阶方阵中,包含了81个小格(九列九行),其中又再分成九个小正方形(称为宫),每宫有九小格。
游戏刚开始时,盘面上有些小格已经填了数字(称为初盘),游戏者要在空白的小格中填入1到9的数字,
使得最后每行、每列、每宫都不出现重复的数字,而且每一个游戏都只有一个唯一的解答(称为终盘)。
输入:
一个9*9的矩阵,0表示该位置是空白。
输出:
一个9*9的矩阵,格式与输入类似。
输入样例:
900050060020070100300102040703800529000345000516009403050208006007090010030010004
输出样例:
971453268428976135365182947743861529892345671516729483154238796687594312239617854
阅读全文
0 0
- 1202 数独游戏
- 算法练习-NOJ-1202-数独游戏
- 数独游戏求解
- 数独游戏
- 数独游戏
- 数独游戏破解
- 数独游戏程序
- 数独游戏
- 数独游戏
- 数独游戏
- 数独游戏
- 数独游戏新篇章
- 数独游戏
- 数独游戏
- 数独游戏
- 数独游戏开发
- 数独游戏
- 数独游戏
- 【BZOJ2190】仪仗队(欧拉函数)
- iOS开发业界毒瘤 Hook
- Hbase客户端优化
- 【Kafka源码】SocketServer启动过程
- C/C++学习笔记2
- 1202 数独游戏
- 支付宝支付网页
- 转自IBM学习 浅析 Linux 初始化 init 系统,第 3 部分 Systemd
- Git和SVN
- 虚拟机快照文件解析思路和原vmdk文件的依赖关系
- 保罗·福塞尔《格调:社会等级与生活品味》
- 关于java锁的一些知识整理
- 创建链表,遍历,求长度,插入,删除,排序,是否为空
- 横向越权和纵向越权