zoukankan      html  css  js  c++  java
  • CCF NOI1063 计算组合数

    问题链接CCF NOI1063 计算组合数




    时间限制: 1000 ms  空间限制: 262144 KB

    题目描述 

      给出两个非负整数n和m,编写程序计算组合数C(n,m)的值。

    输入

      一行两个空格隔开的非负整数n,m。

    输出

      输出一个数表示C(n,m)。

    样例输入

    5 2
    样例输出

    10

    数据范围限制

      0<n<=20,0<=m<=n。




    问题分析

      这是一个简单的数学计算问题,需要知道组合函数的计算公式

      输入的数不保证m和n的大小,程序中需要注意,编写相应的逻辑应对。

    程序说明

      输入的n和m不大,使用类型unsigned long long即可。

      使用类型定义后,提交时需要选C++,否则程序错误。那个C语言编译器似乎不支持类型定义!郁闷啊!

    要点详解

    • 尽量用函数封装功能函数
    • 使用类型定义可以使得代码更加简洁。



    参考链接:(略)。

    100分通过的C语言程序:

    #include <stdio.h>
    
    typedef unsigned long long ULL;
    
    ULL c(int n, int m)
    {
        ULL ans = 1;
    
        if(m <= n-m)
            m = n - m;
        for(int i=m+1; i<=n; i++)
            ans *= i;
        for(int i=1; i<=n-m; i++)
            ans /= i;
    
        return ans;
    }
    
    int main(void)
    {
        int n, m;
    
        scanf("%d%d", &n, &m);
    
        printf("%lld
    ", c(n, m));
    
        return 0;
    }



  • 相关阅读:
    springmvc+mybatis多数据源切换
    Tomcat 8.5 配置自动从http跳转https
    Tomcat 8.5 配置 域名绑定
    本地测试Tomcat配置Https访问
    Spring boot
    解决IDEA16闪退的问题
    cef
    spring-boot学习资料
    oracle 表空间不足解决办法
    oracle导出表的办法
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7563885.html
Copyright © 2011-2022 走看看