gundumw100 2011-08-19 10:11 采纳率: 0%
浏览 395
已采纳

求一简单的阶乘算法C(n,m)

就是数学中的C(n,m),n为下标,m为上标。比如C(5,2)=5*4/2*1;又比如C(10,7)=C(10,3)=10*9*8/3*2*1;
最好效率高一点,代码要简洁。

  • 写回答

1条回答 默认 最新

  • huozhedecctv 2011-08-19 12:25
    关注

    天生愚钝,刚写的,看看合理不:
    [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]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?