大疆编程题为啥过不了
发布于 2017-09-17 16:09 3099 次浏览 0 赞 来自 试题交流  

题目: DJI的员工中午无比热爱叫外卖,导致为DJI服务的外卖平台非常多。现在有一个外卖平台,每天提供n种菜式,Tom想知道,在这n种菜式里面选m种有多少种选择方式。

输入

2

2 1

3 2

输出

2

3


题目很简单,就是求个Cn(m)。但是就是只能通过20%,真的是蛋疼

var n = parseInt(read_line());  //获取数据组数
for(var i=0; i<n; i++) {
    //获取每组的数据
    var line = read_line().split(' ');
    var s = parseInt(line[0]);
    var r = parseInt(line[1]);
    print(factorial(s)/(factorial(s-r)*factorial(r)));
}
//求阶乘
function factorial(n) {
    if(n==1 || n==0) {
        return 1;
    }
    return n*factorial(n-1);
}


5 条回复

弄了个S=R的情况,过了40%

2017-09-17 17:53

这个题目我一开始做也是20%,但是你要好好的看看题目的每个字。

2017-09-18 13:57
coder_GBgkvTK6 回复 test

现在都没机会看了,求大佬指导一下

2017-09-18 16:57

当n太大时数据会溢出的,这个点要考虑到哦

2018-07-05 14:03
private static int getSelCount(int n, int m) throws Exception {
   if (n <= 0 || n < m) {
       throw new Exception("输入错误");
   }
   if (m == 1) {
       return n;
   }
   return (1 + n - m + 1) * (n - m + 1) / 2;
}


2018-07-05 15:02
添加回复
回到顶部