前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >练习2-18 求组合数 (15分)

练习2-18 求组合数 (15分)

作者头像
C you again
发布2021-03-16 15:00:49
6800
发布2021-03-16 15:00:49
举报
文章被收录于专栏:IT技术圈

一、题目描述

本题要求编写程序,根据公式

算出从n个不同元素中取出m个元素(m≤n)的组合数。

建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。

输入格式:

输入在一行中给出两个正整数m和n(m≤n),以空格分隔。

输出格式:

按照格式“result = 组合数计算结果”输出。题目保证结果在double类型范围内。

输入样例:

2 7

输出样例:

result = 21

二、思路分析

本题主要考察利用函数 fact(n) 计算n!

大体实现过程如下:

1. 编写 fact(n) 函数计算 n!。n! = 1 * 2 * 3 * ... * n。

代码语言:javascript
复制
double fact(int n)
{
    int i;
    double t=1.0;
    for(i=1;i<=n;i++)
    {
        t*=i;
    }
    return t;
}
  1. 定义 int 类型的变量 m,n 并按照规定格式输入。
  2. 调用 fact(n) 函数计算结果并输出。
代码语言:javascript
复制
double result=fact(n)/(fact(m)*fact(n-m));
printf("result = %.0lf\n",result);

三、参考代码

根据以上分析,给出参考代码如下:

代码语言:javascript
复制
#include<stdio.h>
double fact(int n)
{
    int i;
    double t=1.0;
    for(i=1;i<=n;i++)
    {
        t*=i;
    }
    return t;
}
int main()
{
    int m,n;
    scanf("%d %d",&m,&n);
    double result=fact(n)/(fact(m)*fact(n-m));
    printf("result = %.0lf\n",result);
}

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 C you again 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、题目描述
  • 二、思路分析
  • 三、参考代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档