目录

2025-03-13-学习记录-CC-PTA-练习2-18-求组合数

2025-03-13 学习记录–C/C++-PTA 练习2-18 求组合数

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻

一、题目描述 ⭐️

https://i-blog.csdnimg.cn/direct/7d351bfa79da4c0abdd4ef11ec9df08d.png

二、代码(C语言)⭐️

#include <stdio.h> // 包含标准输入输出库,用于使用 scanf 和 printf 函数

// 定义一个递归函数 fact,用于计算整数 n 的阶乘
double fact(int n) {
    // 如果 n 为 0,返回 1(0 的阶乘为 1)
    // 否则,递归计算 n * fact(n - 1)
    return n == 0 ? 1 : n * fact(n - 1);
}

int main() {
    int m, n; // 定义变量 m 和 n,表示组合数公式中的参数
    double result; // 定义变量 result,用于存储计算结果

    // 从用户输入中读取两个整数 m 和 n
    scanf("%d %d", &m, &n);

    // 计算组合数 C(n, m) = n! / (m! * (n - m)!)
    result = fact(n) / (fact(m) * fact(n - m));

    // 将结果强制转换为整数并输出
    printf("result = %d", (int)result);

    return 0; // 程序正常结束
}  

https://i-blog.csdnimg.cn/direct/07820cbd991e435c9a3acb0d74ff242e.jpeg