这是一个排列组合问题
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);
}
}