阶乘
有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);
}
}

浙公网安备 33010602011771号