码迷,mamicode.com
首页 > 其他好文 > 详细

计算组合数

时间:2018-03-17 17:51:22      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:code   factorial   std   计算   题目   include   完成   input   for   

#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;
}



溢出是个头痛的问题。

计算组合数

标签:code   factorial   std   计算   题目   include   完成   input   for   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!