就是数学中的C(n,m),n为下标,m为上标。比如C(5,2)=5*4/2*1;又比如C(10,7)=C(10,3)=10*9*8/3*2*1;
最好效率高一点,代码要简洁。
天生愚钝,刚写的,看看合理不:
[code="java"]
public static int c(int a,int b){
if(b>a/2){
return c(a,a-b);
}
return up(a,b)/up(b,b);
}
public static int up(int a,int b){
int c = 1;
for(int i=0;i<b;i++){
c = c*a;
a--;
}
return c;
}
public static void main(String[] arg){
System.out.println(c(10,2));
}
[/code]