java排位赛第一季霸王赛


/** * 从1到n(n>2)的数字中,截取r个数字,进行排列组合,请输出可进行排列组合的总数。
 * * 测试用例(根据输入输出完成编程): 
 * 输入: 输出:
 * [3,2]    6        //例从1到3的数字中,截取2个数字,进行排列组合,输出可进行排列组合的总数6 
 * [5,3]    60      //例从1到5的数字中,截取3个数字,进行排列组合,输出可进行排列组合的总数60 
 * [100,4]   94109400   //例从1到100的数字中,截取4个数字,进行排列组合,输出可进行排列组合的总数94109400 
 * [****(不可及)] ****(不可及)    //无上限 */
 

--来自网页客户端
已邀请:

sjing - Google

赞同来自:

涉及数学排列数公式:
 
排列数公式 就是从n个不同元素中,任取m(m≤n)个元素(被取出的元素各不相同),按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列。
 
即  p(n,m)=n(n-1)(n-2)……(n-m+1)= n!/(n-m)!

--来自网页客户端

sjing - Google

赞同来自:

工具方法:
 
    public static Integer outPut(Integer upper, Integer intercept) {
        int superscript = 1;
        int subscript = 1;
        for (int i = 1; i <= upper; i++) {
            superscript = superscript * i;
        }
        for (int i = 1; i <= upper - intercept; i++) {
            subscript = subscript * i;
        }
        return superscript / subscript;
    }

--来自网页客户端

sjing - Google

赞同来自:

upper   上标,即数字最大值;
intercept   截距   即取几个;

--来自网页客户端

要回复问题请先登录注册

Template error, template file not found