本文目录一览:
- 1、一个java解数独的问题
- 2、c++或java 写一个解3阶数独的程序
- 3、java 编写16*16数独 但是怎么让数独里的数字变成颜色 就是本来里面填充的是数字 现在变成16种不同颜色.
- 4、java 数独(性质求简单代码)
- 5、JAVA程序写一个method,验证一个数独是否正确
- 6、用java虚拟机实现数独计算的功能,求解决代码成几何倍数增加的问题!
一个java解数独的问题
可用递归方式来做,具体java代码我就不写了。
把格子从左上到右下排成64个,按次序每个做遍历。
思路大概是这样的:
function MakeAnswer(传入父格子)
{
取父格子下的第一个子格子作为当前格子
计算当前格子所有可取的解
while (当前格子还有可取的未尝试的解)
{
取一个这个当前格子未尝试过的解,并把这个解标记成已尝试
判断是否这个当前格子已经是最后一个格子了,若是,则表示已经得到可行的解,则这个猜测是可行的,否则继续递归 MakeAnswer(当前格子)
}
}
某个格子的尝试的解改变了之后,往下递归子格子的时候,所有子格子的可能的解都有可能会变。
写得比较抽象,不知你看懂没
c++或java 写一个解3阶数独的程序
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 = 0; i a; i++) { //因为题目没有描述,这里假设x, y是随机整数,Geocache有a href=";tn=44039180_cprfenlei=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 编写16*16数独 但是怎么让数独里的数字变成颜色 就是本来里面填充的是数字 现在变成16种不同颜色.
算法和原来一样吧,只是每一个数字都代表一个颜色,先把数字填好,然后在根据数字把界面中的方格变成颜色,比如1对应红色,2对应黄色,3对应绿色等等
java 数独(性质求简单代码)
这只是一个找规律的题而已,找好规律了,谁都会做。
import java.util.Arrays;
import java.util.Scanner;
public class Kuaile {
public static void main(String[] args) {
System.out.println("请输入一个=34的数:");
Scanner in = new Scanner(System.in);
int num = in.nextInt();
while (num 34) {
System.out.println("数值太小了!请重输:");
num = in.nextInt();
}
int row1[] = { 8, 11, num - 20, 1 };
int row2[] = { num - 21, 2, 7, 12 };
int row3[] = { 3, num - 18, 9, 6 };
int row4[] = { 10, 5, 4, num - 19 };
System.out.println(Arrays.toString(row1));
System.out.println(Arrays.toString(row2));
System.out.println(Arrays.toString(row3));
System.out.println(Arrays.toString(row4));
}
}
JAVA程序写一个method,验证一个数独是否正确
public static Geocache[] createGeocaches(int a) {
if(a = 0) return new Geocache[0];
Random rand = new Random();
Geocache[] result = new Geocache[a];
for(int i = 0; i a; i++) {
//因为题目没有描述,这里假设x, y是随机整数,Geocache有构造函数(int, int)
int x = rand.nextInt();
int y = rand.nextInt();
result[i] = new Geocache(x, y);
}
return result;
}
用java虚拟机实现数独计算的功能,求解决代码成几何倍数增加的问题!
package know;
public class T11 {
public static void main(String[] args) {
int[][] shudu=shudu(4);
for(int i=0;ishudu.length;i++){
for(int j=0;jshudu[i].length;j++){
System.out.print(shudu[i][j]+" ");
}
System.out.println();
}
}
/**
* 排列规则(9)
* 123456789
234567891
345678912
456789123
567891234
678912345
789123456
891234567
912345678
* @param i
*/
public static int[][] shudu(int i){
/**
* 构造数组
*/
int[][] shudu=new int[i][];
for(int k=0;ki;k++){
shudu[k]=new int[i];
}
/**
* 填充数字
*/
for(int k=0;ki;k++){
int first=k+1;
for(int j=0;ji;j++){
shudu[k][j]=first++;
if(shudu[k][j]i){
first=1;
shudu[k][j]=first++;
}
}
}
return shudu;
}
}
设计这种程序,第一是要想清楚设计思路,确定思路之后,发现逻辑很有规律,只是多次重复这个规律,对于这种情况,一般要想到的就是用for循环或递归这两种解决方法