本文目錄一覽:
- 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循環或遞歸這兩種解決方法
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/238053.html