
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
错->继续循环
}
完毕.
评论列表(0条)