阶乘

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

源码:

public static void main(String[] args){
    int count=0;
    for(int i=1;i<=4;i++){ //百位
        for(int j=1;j<=4;j++){//十位
            for(int k=1;k<=4;k++){//个位
                if(i !=j && i!=k && j!=k){
                    int result=i*100+j*10+k;
                    count++;
                    System.out.println(result);
                }
            }
        }
    }
        System.out.println(count);
}    

 

有n(n<10)个互不相同的数字,能组成多少个互不相同且无重复数字的k(k<=n)位数?

 程序分析:

  对于k位数的组成分析,可以用统计学的方法。

  第k位上的取值有n种, 因为k位数是由互不相同的数字组成,故第k-1位上的取值还有n-1种。

  以此类推。。

  当k=n时 其实就是计算n的阶乘

 源码:

public class Main {
	static int counter=0;//计数
	public static void main(String[] args) {
		int result=f(4,3);
		System.out.println(result);
	}
	public static int f(int n,int k){
		counter++;
		if(n==1 ||n==2 ||k==counter){
			return n;
		}
		return n*f(n-1,k);
	}

}

  

 

   

  

posted @ 2013-06-24 17:12  意义非凡  阅读(713)  评论(0)    收藏  举报