数学知识排列组合直接秒
2026-08-15 16:26:04
发布于:内蒙古
1阅读
0回复
0点赞
排列数公式
排列数 A(n,m) 表示从 n 个不同元素中取出 m 个元素的所有排列的个数,计算公式为:
A(n,m) = n! / (n-m)!
当 m = n 时:
A(n,n) = n! / 0! = n! (众所周知:0!=1)
所以本题实际就是求 n 的阶乘 n!。
解题思路
最直接的方法是使用递推公式:
- 0! = 1,1! = 1
- i! = i × (i-1)! (i ≥ 2)
因为题目只有单组输入,我们可以:
- 预处理出 0! 到 20! 的所有值,存入数组
f[i]。 - 输入 n,直接输出
f[n]。
代码实现(C++)
#include<iostream>
using namespace std;
int main() {
long long f[25] = {1, 1}; // f[0]=1, f[1]=1
for (int i = 2; i <= 20; i++) {
f[i] = i * f[i - 1];
}
int n;
cin >> n;
cout << f[n] << endl;
return 0;
}
这里空空如也







有帮助,赞一个