乗算と配列の例(n個の要素からm個の要素の組成が互いに異なり、重複しない3桁)
1284 ワード
public static void main(String[] args) {
//1. , n, n!( )。4*3*2*1=4! :0!=1
System.out.println("4 :" + getFactorial(4));
//2. , 1,2,3,4 , ? ?
System.out.println(" " + getGroupKinds(new int[]{1, 2, 3, 4}, 3) + " ");
}
/**
* 1. , n, n!( )。4*3*2*1=4!
*
* @param n
* @return
*/
public static int getFactorial(int n) {
return n < 1 ? 1 : n * getFactorial(n - 1);
}
/**
* 2. , 1,2,3,4 , ? ?
* @param arr
* @param m
* @return
*/
public static int getGroupKinds(int[] arr, int m) {
int count = 0;
int n = arr.length;
// :
for (int i = 0; i < n; i++) {
for (int k = 0; k < n; k++) {
for (int j = 0; j < n; j++) {
if (i != k && k != j && i != j) {
//System.out.println(" ----"+arr[i]+arr[k]+arr[j]);
count++;
}
}
}
}
// : A(n,m)=n!/(n-m)! n ,m n , (n-1) 。。。
System.out.println(" :" + getFactorial(arr.length) / getFactorial(arr.length - m));
return count;
}