c++或java 写一个解3阶数独的程序

c++或java 写一个解3阶数独的程序,第1张

123456789101112131415161718192021public static Geocache[] createGeocaches(int a) {if(a <= 0) return new Geocache[0]Random rand = new Random()Geocache[] result = new Geocache[a]for(int i = 0i <ai++) {//因为题目没有描述,这里假设x, y是随机整数,Geocache有<a href="https://www.baidu.com/s?wd=%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dhrjIWn1D4n19hmWDzm1R0IAYqnWm3PW64rj0d0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtkPWm4rjR4rHbLPWR1nH63P16L" target="_blank" class="baidu-highlight">构造函数</a>(int, int) int x = rand.nextInt()int y = rand.nextInt()result[i] = new Geocache(x, y)} return result}

JAVA不熟,不过算法都差不多。

等会给你个C/C++的。

我用C++做出来了.

基本思路说下:

先定义类

class JiuGong

{

public:

int table[9][9]//这个是九宫里的数学 不知道的用0代替

bool mark[9][9]//这个表示九宫状态,true表示已知的,可以不计算的

int x

int y//x,y表示当前正在试验的点

JiuGong *pre//这是后面堆栈用的

bool check()//这函数进行九宫检查,包括行/列/小九宫的查错

bool finish()//这函数检查是否已经完成

bool find()//这函数用来找到下一个未知点(试验点)位置

}

再定义一个类 这是个堆栈

class JiuGongStack()

{

public:

JiuGong *top

bool push(JiuGong *p)//压

bool pop(JiuGong *p)//d

}

推算过程:

先声明一个JiuGong结构,导入初始值.

成员函数find()找到第一个未知点.

以下循环:

{

在试验点数字加1

用成员函数finish()检查是否结束

Y->成功 返回

N->向下

检查数字>9

Y->POP ->POP失败 ->题目错误 返回

N->向下

用成员函数check()查错

无错->PUSH

错->继续循环

}

完毕.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12198515.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存