#include<iostream>
using namespace std; bool heng(int **sudo, int a, int b, int value)
{
bool flag = true;
for(int i=0; i<9; i++)
{
if(sudo[a][i]==value)
{
flag = false;
}
}
return flag;
} bool shu(int **sudo, int a, int b, int value)
{
bool flag = true;
for(int i=0; i<9; i++)
{
if(sudo[i][b]==value)
{
flag = false;
}
}
return flag;
} bool fang(int **sudo, int a, int b, int value)
{
bool flag = true;
int x = a/3*3;
int y = b/3*3; for(int i = 0; i<3; i++)
{
for(int j=0; j<3; j++)
{
if(sudo[x+i][y+j]==value)
{
flag = false;
}
}
}
return flag;
} void dfs(int a, int b, int **sudo, bool &flag)
{
if(a==9 && b==0)
{
for(int i=0; i<9; i++)
{
for(int j=0; j<8; j++)
{
cout<<sudo[i][j]<<' ';
}
cout<<sudo[i][8]<<endl;
}
flag = false;//find
return;
}
else
{
if(flag)
{
if(sudo[a][b]==0)
{
for(int i=1; i<=9; i++)
{
if(flag && heng(sudo, a, b, i) && shu(sudo ,a, b,i) && fang(sudo, a, b, i))
{
sudo[a][b] = i;
dfs( (b==8)?a+1:a, (b==8)?0:b+1, sudo, flag);
sudo[a][b] = 0;
}
}
}
else
{
dfs( (b==8)?a+1:a, (b==8)?0:b+1, sudo, flag);
}
}
else
{
return ;
}
}
} int main()
{
int **sudo;
sudo = new int* [9];
for(int i=0; i<9; i++)
{
sudo[i] = new int [9];
} for(int i=0; i<9; i++)
{
for(int j=0; j<9; j++)
{
cin>>sudo[i][j];
}
} //dfs
bool flag = true;
dfs(0,0,sudo, flag); for(int i=0; i<9; i++)
{
delete [] sudo[i];
}
delete [] sudo; return 0;
}

  

描述

问题描述:数独(Sudoku)是一款大众喜爱的数字逻辑游戏。玩家需要根据9X9盘面上的已知数字,推算出所有剩余空格的数字,并且满足每一行、每一列、每一个粗线宫内的数字均含1-9,并且不重复。
输入:
包含已知数字的9X9盘面数组[空缺位以数字0表示]
输出:
完整的9X9盘面数组

知识点 查找,搜索,排序
运行时间限制 10M
内存限制 128
输入

包含已知数字的9X9盘面数组[空缺位以数字0表示]

输出

完整的9X9盘面数组

样例输入 0 9 2 4 8 1 7 6 3 4 1 3 7 6 2 9 8 5 8 6 7 3 5 9 4 1 2 6 2 4 1 9 5 3 7 8 7 5 9 8 4 3 1 2 6 1 3 8 6 2 7 5 9 4 2 7 1 5 3 8 6 4 9 3 8 6 9 1 4 2 5 7 0 4 5 2 7 6 8 3 1
样例输出 5 9 2 4 8 1 7 6 3 4 1 3 7 6 2 9 8 5 8 6 7 3 5 9 4 1 2 6 2 4 1 9 5 3 7 8 7 5 9 8 4 3 1 2 6 1 3 8 6 2 7 5 9 4 2 7 1 5 3 8 6 4 9 3 8 6 9 1 4 2 5 7 9 4 5 2 7 6 8 3 1

Sudoku 数独游戏的更多相关文章

  1. POJ - 2676 Sudoku 数独游戏 dfs神奇的反搜

    Sudoku Sudoku is a very simple task. A square table with 9 rows and 9 columns is divided to 9 smalle ...

  2. android开发——数独游戏

    最近研究了一下android,写了一个数独游戏,具体如下: 游戏界面需要重写一个ShuduView继承View, 然后自定义一个Dialog: 1.需要继承 Dialog 类, 2.并要定义一个有参构 ...

  3. C语言学习 数独游戏

    摘要:花了1周多时间学习了C语言,开始练手写解数独游戏的程序. C语言学习 数独游戏 作者:乌龙哈里 时间:2015-11-22 平台:Window7 64bit,TCC 0.9.26(x86-64 ...

  4. 创建随机的9x9数独游戏终盘并打印

    创建随机的9x9数独游戏终盘并打印 项目github地址 1. 项目相关要求 1.1 要求 利用程序随机构造出N个已解答的9x9数独棋盘 . 输入 数独棋盘题目个数N(0<N<=10000 ...

  5. POJ 2676 Sudoku (数独 DFS)

      Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 14368   Accepted: 7102   Special Judg ...

  6. Swift数独游戏优化——C++与OC混编、plist自动生成

    一.为什么要C++与OC混编? 在我之前的数独游戏中涉及到的数独游戏生成算法是参考的网上其他人的算法,是利用C++来实现的.   但是在我的例子中我发现这样存在一定的局限性: 1.我是利用Termin ...

  7. 2015南阳CCPC H - Sudoku 数独

    H - Sudoku Description Yi Sima was one of the best counselors of Cao Cao. He likes to play a funny g ...

  8. Leetcode0037--Sudoku Solver 数独游戏

    [转载请注明]http://www.cnblogs.com/igoslly/p/8719622.html 来看一下题目: Write a program to solve a Sudoku puzzl ...

  9. 使用Xamarin开发移动应用示例——数独游戏(四)产生新游戏算法改进

    项目代码可以从Github下载:https://github.com/zhenl/ZL.Shudu .代码随项目进度更新. 前面我们使用一个数组保存预制的游戏,然后随机从中抽取一个游戏作为新游戏,如果 ...

随机推荐

  1. Caffe框架下的图像回归测试

    Caffe框架下的图像回归测试 参考资料: 1. http://stackoverflow.com/questions/33766689/caffe-hdf5-pre-processing 2. ht ...

  2. ResultSet用法集锦

    ResultSet用法集锦 结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数 ...

  3. cherrypy应用探究

    1. cherrypy是什么? cheerypy是一个有pythonic特性的面向对象的http服务框架. 玩python的人都应该知道pythonic这个单词.python大神给我们的建议 : &g ...

  4. Winform-DataGridView 实现如Excel的粘贴复制

    void AddDataGridView(DataGridView gridView, string s) { s = s.Replace("/", @"\") ...

  5. jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法

    jQuery(function ($) {    // 备份jquery的ajax方法        var _ajax = $.ajax;    // 重写ajax方法,先判断登录在执行succes ...

  6. 这次是Selenide测试自动发送博客

    asdfasfdfsdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdsfasdfdas

  7. [转]struct.pack 用法手记

    原文:http://hi.baidu.com/tibelf/item/8b463d15edfdf10bd1d66d83 看到在进行c格式的二进制文件读取的过程中,用到了struct.unpack方法, ...

  8. sys,os,模块-正则表达式

    # *__conding:utf-8__* """"我是注释""" sys,os模块 import sysimport os pr ...

  9. BCP 导出导入数据(SQL Server)

    BCP指令工具可通过安装SQL Server获得. 1. 根据现有的数据库生成表的format文件(导入导出数据的时候需要) bcp db_test.dbo.Table1 format nul -c ...

  10. .net平台下获取高精度时间类

    原文:http://www.it118.org/specials/321869dd-98cb-431b-b6d2-82d973cd739d/d940a15c-0d36-4369-8de0-b07cf3 ...