首页 > 试题广场 >

数独

[编程题]数独
  • 热度指数:22209 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
数独是一个我们都非常熟悉的经典游戏,运用计算机我们可以很快地解开数独难题,现在有一些简单的数独题目,请编写一个程序求解。
如有多解,输出一个解

输入描述:
输入9行,每行为空格隔开的9个数字,为0的地方就是需要填充的。


输出描述:
输出九行,每行九个空格隔开的数字,为解出的答案。
头像 拖泥带水
发表于 2020-08-18 10:34:52
问题分析 数独问题,可以拆分成两个子问题,一个是放置数字,一个是校验九宫格是否合法。后者比较简单,对于前者这种穷举类的问题,一般采用回溯法来解决。 对于每一个待放置数字的位置,我们从1到9挨个往里面放,如果1-9以有一个数字合法的话,就移动到下一个待放置数字的位置,如果不合法,就回退到上一个待放置的 展开全文
头像 苏觅云
发表于 2022-06-27 22:17:42
import java.util.*; public class Main { public static boolean dfs(int[][] mat, ArrayList<Integer> iLst, 展开全文
头像 牛客669158664号
发表于 2021-08-09 16:49:49
//AC代码:#include<stdio.h>#include<stdbool.h>int G[9][9],res=0;void dfs(int);bool judge();int main(){ int i,j; for(i=0;i<9;i++) 展开全文
头像 诗云panther
发表于 2021-10-17 15:39:45
#include <iostream> #include <vector> using namespace std; int row[9][10] = {0}; int col[9][10] = {0}; int block[9][10] = {0}; int res[9 展开全文
头像 一个响亮的名字启动
发表于 2023-04-03 15:49:08
import sys grid = [[0] * 10] for s in sys.stdin: grid.append([0] + list(map(int, s.split(" ")))) # rows[i][j]表示第i行是否已使用数字j rows = [[False] * 10 f 展开全文