a,b,c,d,e,f六个字母可以构成多少没有重复的字符串。

这是一个排列组合问题

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值