回溯法解决9宫格问题

本文介绍了如何运用回溯法解决经典的9宫格数独问题。算法竞赛即将到来,作者回顾了回溯法,这是一种深度优先遍历的优化版本,通过排除不可能的解决方案来提高效率。数独问题要求每行、每列和每个宫格内的数字1-9不能重复,且只有一个唯一解。文章最后给出了回溯法解决数独问题的代码示例。
摘要由CSDN通过智能技术生成

                                 算法之回溯法----解决9宫格问题

          最近一直在看算法,原因是马上的算法竞赛就要到来了,今天回顾了一下常用算法中的回溯法。

       回溯法也是深度优先遍历的一种方法,不过在回溯法进行的同时,将不可能的结果直接pass掉,这样就大大提高了程序的效率,回溯法求解八皇后问题在网上是非常多的,我这里就不举例了,今天我们用回溯法来求解难倒很多数学家的9宫格问题。问题是这样的:

        玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个同色九宫内的数字均含1-9,不重复。

数独的答案都是唯一的,所以,多个解也称为无解。直接附上代码啦,便于大家一起分析。

#include<stdio.h>
int  result=0;                         //多少种结果
void showsudu(int data[9][9])
{
	result++;
	for(int row=0;row<9;row++)
	{
		for(int col=0;col<9;col++)
		{
			
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值