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

求一简单的阶乘算法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]

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

报告相同问题?

悬赏问题

  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏