首页 > 其他 > 详细

计算组合数

时间:2018-03-17 17:45:46      阅读:225      评论:0      收藏:0      [点我收藏+]
#include <stdio.h>
#include <math.h>
// 请先独立完成,如果有困难可以翻阅本书代码仓库中的答案,但一定要再次独立完成。
// “抓住主要矛盾”——始终把学习、实验的焦点集中在最有趣的部分。如果直观地解决方案行得通,就不必追究其背后的原理。

/**
【题目】计算组合数。
编写函数,参数是两个非负整数n和m,返回组合数 n!/m!(n-m)! ,其
中m≤n≤25。例如,n=25,m=12时答案为5200300。
*/


/**
【分析】自定义函数n!
*/

long long factorial(int n) {
    long long result = 1;
    int i;
    for (i = 1;i <= n;i++) {
        result *= i;
    }
    return result;
}

long long C(int n,int m) {
    long long result;
    result = factorial(n) / (factorial(m)*factorial(n-m)); //    容易溢出
    return result;
}

int main()
{
    int n,m;
    scanf("%d%d",&n,&m);

    if (n> 25 || m<0 || m > n) {
        printf("input error");
        return 0;
    }

    printf("%d",C(n,m));


    return 0;
}



溢出是个头痛的问题。

计算组合数

原文:https://www.cnblogs.com/jiqing9006/p/8590761.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!