求解数独(回溯法)

本文介绍了如何运用回溯算法来有效地解决数独难题。通过递归地填入可能的数字,并在遇到冲突时回退,这种方法能确保找到所有可能的解决方案。详细步骤包括初始化空的数独网格,设定递归函数,以及检查每一步的合法性和填充规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//数独大概长这样
规则就是在空格中填写1~9的数字,每一行,每一列,还有每个区域(如上不同颜色的3*3区域)都只能由1~9的一组数字组成
也就是说同行,同类,同区域不能有相同的数字


input:
5 * * * * 7 * * 6
* 6 * * * * 5 * 4
* 8 3 4 * * * * *
* * * 1 8 2 * 4 *
* * 1 * * * 9 * *
* 7 * 3 6 9 * * *
* * * * * 5 4 3 *
1 * 5 * * * * 9 *
7 * * 2 * * * * 1

output:
5 1 4 9 2 7 3 8 6
9 6 7 8 3 1 5 2 4
2 8 3 4 5 6 1 7 9
6 5 9 1 8 2 7 4 3
3 2 1 5 7 4 9 6 8
4 7 8 3 6 9 2 1 5
8 9 2 6 1 5 4 3 7
1 3 5 7 4 8 6 9 2
7 4 6 2 9 3 8 5 1
//此为唯一解

不同的数独解不一定唯一,也不一定有解

#include<iostream>
#include<stdio.h>
#include<string>
#include<sstrea
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值