小蓝与钥匙(错排)
1 import java.util.Scanner; 2 // 1:无需package 3 // 2: 类名必须Main, 不可修改 4 5 public class 小蓝选钥匙 { 6 public static void main(String[] args) { 7 Scanner sc = new Scanner(System.in); 8 long a =14; 9 long n1 = 28; 10 long m = 14; 11 System.out.println(C(n1,m)*D(a)); 12 13 }//全错排列 错位的14把 14 static long D(long a){ 15 if(a==0||a==1){ 16 return 0; 17 } 18 else if(a==2){ 19 return 1; 20 } 21 else{ 22 return (a-1)*(D(a-2)+D(a-1)); 23 } 24 } 25 //组合C 14 28 26 static long C(long n,long m){ 27 long res = 1L; 28 for(int i = 0;i<m;i++){ 29 res = res*(n-i)/(i+1); 30 } 31 return res; 32 } 33 }