pink老師JavaScript教程-筆記(一)
阿新 • • 發佈:2021-01-13
九陣列分數
題目描述
1, 2, 3…9 這九個數字組成一個分數,其值恰好為1/3,要求每個數字出現且只能出現一次,如何組合?編寫程式輸出所有的組合。
輸入
無
輸出
輸出所有的結果,如果有多個,每條結果佔一行。
結果的格式 : xxxx/xxxxx ,按照分子從小到大的順序輸出。
Code
package Week4;
//1, 2, 3...9 這九個數字組成一個分數,其值恰好為1/3,要求每個數字出現且只能出現一次,如何組合?編寫程式輸出所有的組合。
//輸出所有的結果,如果有多個,每條結果佔一行。
//結果的格式 : xxxx/xxxxx ,按照分子從小到大的順序輸出。
public class Q4 {
// 1/3的結果只能是一個四位數/一個五位數
//用一個數組來記錄每次的結果然後判斷大小,從小到大輸出
static int[] array = new int[2];
static int num = 0;
public static void main(String[] args) {
int[] arr ={1,2,3,4,5,6,7,8,9};
perm(arr,0,9);
if(array[0]>array[1]){
swap(0,1,array) ;
}
for(int i=0;i<array.length;i++){
System.out.println(array[i]+"/"+array[i]*3);
}
}
public static void fun_test(int[] arr){
int a = arr[0]*1000 + arr[1]*100 +arr[2]*10 + arr[3];
int b = arr[4]*10000 + arr[5]*1000 +arr[6]*100 + arr[7]*10 + arr[ 8];
//int[] ar = new int[9];
if(a*3==b){
//System.out.println(a+"/"+b);
array[num]=a;
num++;
}
}
public static void perm(int[] arr, int k,int n){
int i,temp;
if(k==n){
fun_test(arr);
return;
}
for(i=k;i<9;i++){
//輪流做第k個
{
temp = arr[k];
arr[k] = arr[i];
arr[i] = temp;
}
perm(arr,k+1,n);
{
temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
}
}
}
//一個交換的函式
public static void swap(int m,int n,int a[]){
int t = a[m];
a[m] = a[n];
a[n] = t;
}
}