只会用递归……
Sudoku::resolve()方法用来求出数独的解。代码如下
bool Sudoku::resolve(){
int x,y;
int solve = getFirstUnset(&x,&y);
int list[10];
if(solve==0){
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
answer[i][j] = puzzle[i][j];
}
}
return true;
}else if(solve==1){
getNumList(x,y,list);
for(int tmp=1;tmp<=9;tmp++){
if(list[tmp]==0){
continue;
}
Sudoku s(*this);
s.setNumberinPosition(x,y,tmp);
if(s.resolve()){
for(int tmpi=0;tmpi<9;tmpi++){
for(int tmpj=0;tmpj<9;tmpj++){
answer[tmpi][tmpj] = s.answer[tmpi][tmpj];
}
}
resolveFlag = true;
return true;
}
}
}
return false;
}
当要解一个数独时,首先在第一个没有设置数字的位置放置一个适当的数,然后再调用新的Sudoku类的resolve,直到解出为止。
附件为全部代码。vc与g++下编译通过。
分享到:
相关推荐
解数独程序 解数独 DFS搜索
下面就记录一下我写解数独程序的一些思路和心得。 一.数独游戏的基本解决方法 编程笼统的来说,就是个方法论。不论什么程序,都必须将问题的解决过程分解成计算机可以实现的若干个简单方法。俗话说,大道至简。对于...
使用C语言回溯解数独的程序,很简单,易理解。速度还不错
一次课堂作业,C code解数独,从作业要求到最后答案都有,欢迎下载
解数独 亲测可用 1,请确保题目输入正确,否则计算时间延长。 2,输入81个数字自动填入框内,自动格式化(会自动删掉汉字)。 3,自己测试没有发现解不出的题目。
解数独程序源码
在运行目录先建一个Sudoku.txt 文件将数独输入文件中运行程序即可。本程序用递归 穷举法解答数独。输入txt文件中数据格式: 0 7 0 0 0 0 0 0 0 5 0 3 0 0 6 0 0 0 0 6 2 0 8 0 7 0 0 0 0 0 3 0 2 0 5 0 0 0 4 0 1 0 ...
用C#编了个小界面求解数独,纯粹娱乐一下~
我自己写的解数独的程序,文件输入,控制台输出,使用了递归的思想和简单的贪心算法
自己写的C语言版的解数独程序,该死的字数限制
matlab求解数独的程序,包含文档和程序,简单级别1秒以内,困难级别3-5秒。
python解数独谜题程序
解数独的c程序,不过还没优化,有些重复代码,()是大一时编的,可以看看
一个C语言编写的解数独的程序,要求数独只有一个解 具体就和普通的数独游戏一样,有已知的几个数,然后算出其他的数
一个用C++写的小程序,用回溯法解数独问题
使用php开发的解数独程序,代码简单,功能一般。
并非所有数独均只有一个解 该程序将为求解多解数独 欢迎各位高手赐教提高其效率
还在为破解数独太慢而苦恼吗?本程序助你快速破解数独。