php 数独计算器,问题描述:数独(Sudoku)是一款大众喜爱的数字逻辑游戏。玩家需要根据9X9盘面上的已知数字_题来了...
这题答案不唯一的。系统给的答案:
我的代码测出的答案:
代码如下:
#include using namespace std;
bool sign = false;
int num[9][9];
void Output()
{
for (int i = 0; i < 9; i++){
for (int j = 0; j < 8; j++)
cout << num[i][j] << " ";
cout << num[i][8];
cout << endl;
}
}
/* 判断key填入n格时是否满足条件,n代表第几个格子 */
bool Check(int n, int key)
{
/* 判断n所在横列是否合法 */
for (int i = 0; i < 9; i++){
/* j为n竖坐标 */
int j = n / 9;
if (num[j][i] == key)
return false;
}
/* 判断n所在竖列是否合法 */
for (int i = 0; i < 9; i++){
/* j为n横坐标 */
int j = n % 9;
if (num[i][j] == key)
return false;
}
int y = n / 9 / 3 * 3;
int x = n % 9 / 3 * 3;
/* 判断n所在的小九宫格是否合法 */
for (int i = y; i < y + 3; i++)
for (int j = x; j < x + 3; j++)
if (num[i][j] == key)
return false;
return true;
}
/* 深搜 */
int DFS(int n)
{
/* 所有的都符合,退出搜索,n代表格子数,共81个格子,0~80 */
if (n > 80){
sign = true;
return 0;
}
if (num[n / 9][n % 9] != 0)
DFS(n + 1);
else{
/* 否则对当前位一次填入1~9进行测试 */
for (int i = 1; i <= 9; i++){
if (Check(n, i)){
num[n / 9][n % 9] = i;
/* 继续搜索,后续位也填1~9测试,直到最后一位,通过的话置true */
DFS(n + 1);
/* 返回时如果构造成功,则直接退出 */
if (sign)
return 0;
/* 如果构造不成功,还原当前位 */
num[n/9][n%9] = 0;
}
}
}
return 0;
}
int main()
{
for (int i = 0; i < 9; i++){
for (int j = 0; j < 9; j++)
cin >> num[i][j];
}
DFS(0); //从第0格开始填
Output();
}
php 数独计算器,问题描述:数独(Sudoku)是一款大众喜爱的数字逻辑游戏。玩家需要根据9X9盘面上的已知数字_题来了...相关推荐
- [Python3]数独计算器
学习 Python 之后发现似乎比 C 更容易掌握,于是也自己尝试写了一个小程序: import sys fo = open("sudoku_data.txt") sudoku = ...
- 用vb编了个数独计算器
平时很喜欢玩数独游戏,每天只要信报上有数独游戏,那就不看别的了,专心致志玩一路. 昨天突然想自己编一个软件来算吧,于是就有了这篇文章和一个vb的数独计算器. 下载地址: http://download ...
- Java黑皮书课后题第8章:*8.24(检验数独的解决方案)程序清单8-4通过检测棋盘上的每个数字是否是有效的,从而检验一个解决方案是否是有效的。重写该程序,通过检验是否每行、每列、每个小方盒中具有
*8.24(检验数独的解决方案)程序清单8-4通过检测棋盘上的每个数字是否是有效的,从而检验一个解决方案是否是有效的.重写该程序 题目 题目描述 程序清单8-4 破题 代码 题目 题目描述 *8.24 ...
- 有趣的题目:简单深搜之数独与靶型数独--二进制状压加速与dfs数独剪枝
Sudoku Time Limit: 2000MS Memory Limit: 65536K 题目链接http://poj.org/problem?id=2676 Description Sudo ...
- python大作业数独_python做一个数独小游戏
最近看了下python的一些知识,在这里记载一下. 1.首先是安装,在官网下载最新的版本3.6,安装的时候要注意在下面勾选上ADD TO PATH,安装的时候会自动写入到环境变量里面,如果没有勾选,可 ...
- linux下多线程验证数独,6.6.1 数独求解服务器
6.6.1 数独求解服务器 假设有这么一个网络编程任务:写一个求解数独的程序(Sudoku Solver),并把它做成一个网络服务. Sudoku Solver 是我喜爱的网络编程例子,它曾经出现在& ...
- 数独-- 一个高效率生成数独的算法
关于数独,来自维基百科的玩法解释:在9×9格的大九宫格中有9个3×3格的小九宫格,并提供一定数量的数字.根据这些数字,利用逻辑和推理,在其它的空格上填入1到9的数字.每个数字在每个小九宫格内只能出现一 ...
- 数独(日语:数独/すうどく sūdoku)
数独 (日语:数独/すうどく sūdoku)是一种逻辑性的数字填充游戏,玩家须以数字填进每一格,而每行.每列和每个宫(即3x3的大格)有齐1至9所有数字.游戏设计者会提供一部份的数字,使谜题只有一个答 ...
- (附代码)数独大作业【读取数独,解数独,生成唯一解数独(随机,特定形状,不同难度生成),玩数独】
注:未经同意不要转载. 上学期简单的做了一个数独程序,实现了一些功能,想简单的为大家提供的思路. 为了避免某些情况出现,具体代码暂时先不发了,有不太懂的地方可以评论提问啊. 下面是我的具体报告: 一, ...
- 数字逻辑---头歌实训作业---逻辑函数及其描述工具(Logisim)
第1关:根据布尔表达式绘制电路 如有任何不解或者想要最终实验代码,可评论区喊话哦,希望我的答案对你有帮助,点个关注再走吧,感谢!!! 本关卡最终答案: 任务描述 本关任务:在Logisim中根据给定的 ...
最新文章
- TM1810-3, TM1810-2 LED恒流驱动IC
- [转载] 七龙珠第一部——第095话 悟空对抗克林
- 递归,记忆化搜索,(棋盘分割)
- STM32使用TIM闪烁LED——输出比较方式
- leetcode 最长公共前缀
- 数据库设计Step by Step (10)——范式化
- C++ 函数映射使用讲解
- MongoDB 教程番外篇之添加用户及设置用户权限 ( Rockmongo登陆设置 )
- linux shell rsync,linux – 如何在我的下面的shell脚本中使用rsync而不是scp来复制文件?...
- 快速备份sqlserver2005以上版本数据库的方法-摘自网络
- R 学习笔记《二》 R语言初学者指南
- slickedit 运行java_SlickEdit 一些使用技巧(转载)--一个人的博客
- Java面试面经大合集(含答案),大厂越来越简单进了,建议收藏
- java高级工程师认证考试_Java高级软件工程师人才缺口巨大
- 如何修改网卡的MAC地址?
- 一阶逻辑形式推理系统
- 呆萝卜与每日优鲜竞品分析
- 一张美团外卖的小票看透支付清结算架构!
- 找到所有数组中消失的数字_【一点资讯】千万程序员的呼声:面试如何拿到大厂Offer?这份阅读量超过11W+的算法刷题宝典请你原地查收 www.yidianzixun.com...
- 操作系统笔记(一)——操作系统的定义及作用
热门文章
- window.open 服务器运行失败,win10 openssh服务器安装失败的最佳解决方法
- 即将毕业大学生的第一个五年计划
- linux 安装codeql环境 (二)codeql database create通过报错分析其流程
- Spotlight搜索技巧
- Swing界面设计工具
- 区块链对于相关流程和环节的联系,让元宇宙不再是虚无缥缈的概念
- 国信安web安全——文件上传漏洞
- android retrofit实例,Retrofit2简单实例
- 如何发个 微信九宫格 朋友圈?
- 图像融合初步认识--homesite of oliver rockinger主页内容