数独计算程序

利用递归+回溯的算法可以解决很多可以通过不断尝试迭代求解的程序,最典型的就是八皇后问题。本程序同样是一个递归+回溯算法的小应用。

在如下的界面中,在空白处填入1~9中的任意数字,使之每行每列每个3*3的矩阵(即红框表示的矩阵内)里所有数字仅出现一次。

通过递归+回溯,让每个空格尝试不同的值,当值满足条件时便进入下一单元格尝试下一个值,如果下一个单元格所有值都尝试失败,则返回弹出栈,回前一个单元格去尝试。

通过简单的算法,可以算出多组解,我们只取其中一组,图解如下:

其实类似使用递归+回溯的题目有很多,举个简单的题目,有兴趣的读者不妨试试

1、第一个答案是b的问题是哪一个?  
  (a)2;(b) 3;(c)4;(d)5;(e)6 
2、唯一的连续两个具有相同答案的问题是: 
  (a)2,3;(b)3,4;(c)4,5;(d)5,6;(e)6,7; 
3、本问题答案和哪一个问题的答案相同? 
  (a)1;(b)2;(c)4;(d)7;(e)6 
4、答案是a的问题的个数是:            
  (a)0;(b)1;(c)2;(d)3;(e)4 
5、本问题答案和哪一个问题的答案相同?
  (a)10;(b)9;(c)8;(d)7;(e)6 
6、答案是a的问题的个数和答案是什么的问题的个数相同?
  (a)b;(b)c;(c)d;(d)e;(e)以上都不是
7、按照字母顺序,本问题的答案和下一个问题的答案相差几个字母?  
  (a)4;(b)3;(c)2;(d)1;(e)0。(注:a和b相差一个字母) 
8、答案是元音字母的问题的个数是:
  (a)2;(b)3;(c)4;(d)5;(e)6。(注:a和e是元音字母) 
9、答案是辅音字母的问题的个数是:
  (a)一个质数;(b)一个阶乘数;(c)一个平方数;(d)一个立方数,(e)5的倍数 
10、本问题的答案是: 
  (a)a;(b)b;(c)c;(d)d;(e)e。

 

数独下载:https://files.cnblogs.com/cpw999cn/数独.rar

我真是太马虎了,居然忘了发源码~

源码下载:/Files/cpw999cn/Sudu.rar

posted @ 2008-12-02 15:16  ColdNight  阅读(1021)  评论(1编辑  收藏  举报