2025-03-13-学习记录-CC-PTA-练习2-18-求组合数
目录
2025-03-13 学习记录–C/C++-PTA 练习2-18 求组合数
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻
一、题目描述 ⭐️
二、代码(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; // 程序正常结束
}