这题答案不唯一的。系统给的答案:

我的代码测出的答案:

代码如下:

#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盘面上的已知数字_题来了...相关推荐

  1. [Python3]数独计算器

    学习 Python 之后发现似乎比 C 更容易掌握,于是也自己尝试写了一个小程序: import sys fo = open("sudoku_data.txt") sudoku = ...

  2. 用vb编了个数独计算器

    平时很喜欢玩数独游戏,每天只要信报上有数独游戏,那就不看别的了,专心致志玩一路. 昨天突然想自己编一个软件来算吧,于是就有了这篇文章和一个vb的数独计算器. 下载地址: http://download ...

  3. Java黑皮书课后题第8章:*8.24(检验数独的解决方案)程序清单8-4通过检测棋盘上的每个数字是否是有效的,从而检验一个解决方案是否是有效的。重写该程序,通过检验是否每行、每列、每个小方盒中具有

    *8.24(检验数独的解决方案)程序清单8-4通过检测棋盘上的每个数字是否是有效的,从而检验一个解决方案是否是有效的.重写该程序 题目 题目描述 程序清单8-4 破题 代码 题目 题目描述 *8.24 ...

  4. 有趣的题目:简单深搜之数独与靶型数独--二进制状压加速与dfs数独剪枝

    Sudoku Time Limit: 2000MS   Memory Limit: 65536K 题目链接http://poj.org/problem?id=2676 Description Sudo ...

  5. python大作业数独_python做一个数独小游戏

    最近看了下python的一些知识,在这里记载一下. 1.首先是安装,在官网下载最新的版本3.6,安装的时候要注意在下面勾选上ADD TO PATH,安装的时候会自动写入到环境变量里面,如果没有勾选,可 ...

  6. linux下多线程验证数独,6.6.1 数独求解服务器

    6.6.1 数独求解服务器 假设有这么一个网络编程任务:写一个求解数独的程序(Sudoku Solver),并把它做成一个网络服务. Sudoku Solver 是我喜爱的网络编程例子,它曾经出现在& ...

  7. 数独-- 一个高效率生成数独的算法

    关于数独,来自维基百科的玩法解释:在9×9格的大九宫格中有9个3×3格的小九宫格,并提供一定数量的数字.根据这些数字,利用逻辑和推理,在其它的空格上填入1到9的数字.每个数字在每个小九宫格内只能出现一 ...

  8. 数独(日语:数独/すうどく sūdoku)

    数独 (日语:数独/すうどく sūdoku)是一种逻辑性的数字填充游戏,玩家须以数字填进每一格,而每行.每列和每个宫(即3x3的大格)有齐1至9所有数字.游戏设计者会提供一部份的数字,使谜题只有一个答 ...

  9. (附代码)数独大作业【读取数独,解数独,生成唯一解数独(随机,特定形状,不同难度生成),玩数独】

    注:未经同意不要转载. 上学期简单的做了一个数独程序,实现了一些功能,想简单的为大家提供的思路. 为了避免某些情况出现,具体代码暂时先不发了,有不太懂的地方可以评论提问啊. 下面是我的具体报告: 一, ...

  10. 数字逻辑---头歌实训作业---逻辑函数及其描述工具(Logisim)

    第1关:根据布尔表达式绘制电路 如有任何不解或者想要最终实验代码,可评论区喊话哦,希望我的答案对你有帮助,点个关注再走吧,感谢!!! 本关卡最终答案: 任务描述 本关任务:在Logisim中根据给定的 ...

最新文章

  1. TM1810-3, TM1810-2 LED恒流驱动IC
  2. [转载] 七龙珠第一部——第095话 悟空对抗克林
  3. 递归,记忆化搜索,(棋盘分割)
  4. STM32使用TIM闪烁LED——输出比较方式
  5. leetcode 最长公共前缀
  6. 数据库设计Step by Step (10)——范式化
  7. C++ 函数映射使用讲解
  8. MongoDB 教程番外篇之添加用户及设置用户权限 ( Rockmongo登陆设置 )
  9. linux shell rsync,linux – 如何在我的下面的shell脚本中使用rsync而不是scp来复制文件?...
  10. 快速备份sqlserver2005以上版本数据库的方法-摘自网络
  11. R 学习笔记《二》 R语言初学者指南
  12. slickedit 运行java_SlickEdit 一些使用技巧(转载)--一个人的博客
  13. Java面试面经大合集(含答案),大厂越来越简单进了,建议收藏
  14. java高级工程师认证考试_Java高级软件工程师人才缺口巨大
  15. 如何修改网卡的MAC地址?
  16. 一阶逻辑形式推理系统
  17. 呆萝卜与每日优鲜竞品分析
  18. 一张美团外卖的小票看透支付清结算架构!
  19. 找到所有数组中消失的数字_【一点资讯】千万程序员的呼声:面试如何拿到大厂Offer?这份阅读量超过11W+的算法刷题宝典请你原地查收 www.yidianzixun.com...
  20. 操作系统笔记(一)——操作系统的定义及作用

热门文章

  1. window.open 服务器运行失败,win10 openssh服务器安装失败的最佳解决方法
  2. 即将毕业大学生的第一个五年计划
  3. linux 安装codeql环境 (二)codeql database create通过报错分析其流程
  4. Spotlight搜索技巧
  5. Swing界面设计工具
  6. 区块链对于相关流程和环节的联系,让元宇宙不再是虚无缥缈的概念
  7. 国信安web安全——文件上传漏洞
  8. android retrofit实例,Retrofit2简单实例
  9. 如何发个 微信九宫格 朋友圈?
  10. 图像融合初步认识--homesite of oliver rockinger主页内容