递归求解九宫格(数独)源代码

这篇博客提供了使用递归方法解决九宫格(数独)问题的C语言源代码,包括读取矩阵、解决矩阵和显示解决方案的函数。代码还包含了一个最难的九宫格示例,并指出目前只支持9x9的矩阵,扩展到更大矩阵需要进行相应的修改。
摘要由CSDN通过智能技术生成

以下是用递归的方式求解九宫格(数独)的源代码:


[cpp]  view plain copy
  1. //=========================================================================  
  2. ///  
  3. //[  
  4. //[   Filename:         test.c  
  5. //[   Function:          数独求解  
  6. //[   Last Update:      2012.7.16  
  7. //[   CopyLeft:     Phoenix_Su  
  8. //[        Note:   1.源程序末尾的注释为输入格式,第一个矩阵为区块划分标记(从1开始),  
  9. //[                      如九宫格的划分为注释中所示,第二个矩阵为待填满的九宫格,  
  10. //[                      用你预先设定的数字替换矩阵中的加号即可,第二个矩阵  
  11. //[                      填好后将其复制进文本文件以"in.txt"命名保存至工程的目录下  
  12. //[                   2.注意输入文件"in.txt"中的空格数量不要出错,建议用记事本打开,  
  13. //[                      否则九宫格的形状会很奇葩……  
  14. //[                   3.源代码末尾的注释中的九宫格为芬兰数学家发现的传说中  
  15. //[                      ”最难“的九宫格,仅有一个解!  
  16. //[                   4.暂时只支持小于9的矩阵,若改成大于9*9的矩阵需要将读取方式  
  17. //[                      改成GUI形式,且跟Res数组相关的部分需作相应更改  
  18. //[                      (主要是数据类型的问题导致输入输出方式有一定的变化)  
  19. //[  
  20. ///  
  21. //=========================================================================  
  22.   
  23. #include <stdio.h>  
  24. #include <stdlib.h>  
  25. #include <string.h>  
  26. #include <ctype.h>  
  27. #include <conio.h>  
  28. #include <time.h>  
  29. #include <assert.h>  
  30.   
  31. #define  WIDTH  9  
  32. #define  HIGHT   9  
  33. #define  REC_WIDTH ((WIDTH)*2)   // 18  char number of each line  
  34. #define  BUF_SIZE    (REC_WIDTH)  // 18  
  35. #define  BLOCK_SIZE  9  
  36. #define  BLOCK_NUM  ((WIDTH)*(HIGHT)/(BLOCK_SIZE))  //9  
  37. #define  USED  1  
  38. #define  UNUSED  0  
  39. #define  FIND_SOLUTION 1  
  40.   
  41. int ReadMatrix( void );  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值