1. 程式人生 > 其它 >pink老師JavaScript教程-筆記(一)

pink老師JavaScript教程-筆記(一)

技術標籤:java演算法演算法

九陣列分數

題目描述

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; } }