关键代码展示:

//判断该数字在当前数独是否符合要求

int judge(int num, int ple){

int x = ple / 9; //x表示数字的纵坐标

int y = ple % 9; //y表示数字的横坐标

int qulx = x / 3;

int quey = y / 3;     //que表示9宫格的区域

for (int i = 0; i < 9; i++){

if (map[x][i] == num){

return 0;

}

}

for (int i = 0; i < 9; i++){

if (map[i][y] == num){

return 0;

}

}

for (int i = 0; i < 3; i++){

for (int j = 0; j < 3; j++){

if (map[qulx * 3 + i][quey * 3 + j] == num)

return 0;

}

}

return 1;

}

void getans(int next){

if (temp == 1){ //目的是只生成一个解

return;

}

if (next == 81){

char lis[600];

temp = 1;  //temp=1就可以使递归跳出,避免求得多个解

int bi = 0;

for (int i = 0; i < 9; i++){

for (int j = 0; j < 9; j++){

if (j == 0)lis[bi++] = map[i][j] + '0';

else {

lis[bi++] = ' ';

lis[bi++] = map[i][j] + '0';

}

}

lis[bi++] ='\n';

}

lis[bi++] = '\n';

lis[bi] = '\0';

fputs(lis, fp);

return;

}

if (map[next / 9][next % 9] != 0){     //如果点有数字,则调到下一个网格

getans(next + 1);

return;

}

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

if (judge(i, next)){

map[next / 9][next % 9] = i;

getans(next + 1);

map[next / 9][next % 9] = 0;   //回溯

}

}

}

//根据上文给的算法进行数独的生成

void makesudo(int list[9]){

int lists[9];

char lis[600];

int bi = 0;

for (int i = 0; i < 9; i++){

for (int j = 0; j < mov[i]; j++){

lists[mov[i] - 1 - j] = list[8 - j];

}

for (int j = 0; j < 9 - mov[i]; j++){

lists[j + mov[i]] = list[j];

}

for (int j = 0; j < 9; j++){

if (j == 0) lis[bi++] = lists[j] + '0';

else{

lis[bi++] = ' ';

lis[bi++] = lists[j] + '0';

}

}

lis[bi++] = '\n';

}

lis[bi++] = '\n';

lis[bi] = '\0';

nown++;

fputs(lis, fp);

if (nown == n){

return;

}

}

转载于:https://www.cnblogs.com/P814264306/p/8810868.html

数独项目--关键代码展示:相关推荐

  1. MLAT-Autoencoders---下篇-关键代码及结果展示(1)

    自编码器的实现(python) 本节主要展示了应用深度前馈.稀疏约束神经网络构建自编码器.另外卷积自编码器对图像进行去噪这一应用也非常实用,将在单独放在下篇展示. 1.导入各类包 from pathl ...

  2. MLAT-Autoencoders---下篇-关键代码及结果展示(3)(终)

    用于回报预测和交易的条件自动编码器 本节主要介绍自编码器在资产定价中的应用. 应用步骤分为: 第一步:创建包含股价和元数据信息的新数据集 第二步:计算预测资产特征 第三步:创建和训练条件式自动编码器架 ...

  3. 第五届北大青鸟杯全国IT精英挑战赛中南西南区域一等奖项目——日杂百货分销系统_关键代码说明书

    第五届北大青鸟杯全国IT精英挑战赛中南&西南区域一等奖项目--日杂百货分销系统 关键代码说明书 作者:武汉宏鹏田超凡 版权所有,转载请注明原作者,仿冒侵权必究法律责任 日杂百货分销商城关键代码 ...

  4. 第五届北大青鸟杯全国IT精英挑战赛华中区一等奖项目——中商百货分销系统_关键代码说明书

    第五届北大青鸟杯全国IT精英挑战赛华中区一等奖项目--中商百货分销系统 关键代码说明书 作者:武汉宏鹏田超凡 版权所有,转载请注明原作者,仿冒侵权必究法律责任 中商百货分销商城关键代码说明...... ...

  5. 【手把手指导】给开源项目贡献代码

    很多新人学习了技术,但是没有地方施展. 问题不大,找几个开源项目来参加就可以了,需要开源项目磨练的可以联系学委. 本文重点讲解如何快速的给开源项目贡献代码. 首先你必要要有一个GitHub账号(或者G ...

  6. 【软件工程基础】个人数独项目介绍及制作流程

    一.项目介绍 首先附上项目的GitHub地址:https://github.com/Nevermore5421/PersonalProjectSudoku 拿到题目后,发现该项目的需求与数独有关,要求 ...

  7. 自组网训练生成模型并推理模型完整流程,代码展示LeNet -> AlexNet -> VGGNet -> InceptionNet -> ResNet优化过程

    项目简介 本项目基于20种蝴蝶分类基础上做一个深入浅出的代码理解,及其对数据预处理,自定义数据读取器Reader(Dataset),及其输出final.pdparams,final.pdopt模型,利 ...

  8. 干货 | 华尔街留下的指标之王(附代码展示)

    壹 . 写在前面的话 有人认为价格围绕价值上下波动,研究投资标的内在价值,于是就出现了基本面派: 有人为价格反映了一切,所有的信息(包括基本面)都反映到了盘面价格中,于是就有了技术面派: 从技术面派的 ...

  9. 强烈推荐!分享一个持续连载的《特征工程小锦囊》项目,代码已开源!

    随着我们在机器学习.数据建模.数据挖掘分析这条发展路上越走越远,其实越会感觉到特征工程的重要性,平时我们在很多地方都会看到一些很好的特征工程技巧,但是都会是一个完整项目去阅读,虽然说这样子也可以学习挖 ...

最新文章

  1. windows 7下同时安装visual studio 2012和2010
  2. DevCon工具基本使用
  3. 图着色问题贪心算法c语言,区间图着色问题(贪心算法)C++实现
  4. 日志,错误日志,成功日志,日志是个好东西。
  5. springboot内置tomcat,会和Oracle端口冲突,所以需要配置新的端口号
  6. 点击area不出现黑框_一切小黑屋,都能被黑框玻璃门治愈 | 附安装法则
  7. 史上最强的下载器,没有之一
  8. 2018中国旅游统计年鉴
  9. 前端偶数行有底纹怎么写_如何在Excel中的替代行上应用底纹
  10. 英雄无敌6服务器在哪个文件夹,win7系统英雄无敌6无法运行的解决方法
  11. 漂泊在汉语视界中的蒙古歌者
  12. HBase2.4.8详细教程(三)Java操作HBase
  13. Android实现截屏
  14. 森林图怎么分析_图说meta十一:森林图暨RevMan软件使用方法简介
  15. PgSQL修改字段备注
  16. vue3学习之旅--邂逅vue3-了解认识Vue3(二)
  17. 最新九宫格心形拼图微信小程序源码+带流量主
  18. 从“光棍节”到“双节棍”:今年的天猫双11大不一样
  19. ChatGPT秒杀了所有408考研编程题……
  20. 路上铺个“补丁”,智能汽车高速途中瞬间失控!应用最广自动驾驶技术被曝漏洞 | 字节跳动参与的新研究...

热门文章

  1. vue 常用功能和命令
  2. Java集合类框架的基本接口有哪些?
  3. IntelliJ IDEA2017 激活方法 最新的
  4. Java8-Guava实战示例
  5. 调试 ASP 程序脚本
  6. GitHub初次使用记录(一)
  7. WCF学习笔记之序列化
  8. 【虚拟主机篇】asp页面实现301重定向方法
  9. python字符串是什么_python字符串表示什么
  10. UDP Socket编程 C/C++实现 (Windows Platform SDK)