a,b,c,d,e,f六個字母可以構成多少沒有重複的字串。
阿新 • • 發佈:2018-12-24
這是一個排列組合問題
public class Test3_2 { // //求階乘,這個不需要了 // public static int factorial(int n) // { // int result=1; // for(int i=n;i>1;i--) // { // result*=i; // } // return result; // } //求排列數 public static int A(int up,int bellow) { int result=1; for(int i=up;i>0;i--) { result*=bellow; bellow--; // System.out.println("i="+i); // System.out.println("result="+result); } return result; } //求組合數,這個也不需要了。 public static int C(int up,int bellow) { // int denominator=factorial(up);//分母up的階乘 int denominator=A(up,up);//A(6,6)就是求6*5*4*3*2*1,也就是求6的階乘 int numerator=A(up,bellow);//分子的排列數 return numerator/denominator; } //求排列數: public static void main(String[] args) { //求4的階乘 // factorial(4); // System.out.println(factorial(4));//24 //// 求A(3,6)=6*5*4=120 // System.out.println(A(3,6));//120 // System.out.println(A(1,6));//6 // System.out.println("A(2,6)="+A(2,6));//30 // System.out.println("C(3, 6)="+C(3, 6));//C(3,6)=6*5*4/3*2*1=20; // System.out.println("C(1,6)="+C(1, 6)); String[] strs={"a","b","c","d","e","f"}; int length=strs.length; int sum=0; for(int i=1;i<=length;i++) { System.out.println("A("+i+","+length+")="+A(i,length)); sum+=A(i,length); } System.out.println("sum="+sum); } }