这道题我初步看以为是阶乘函数
实则不然
这道题真正考核我们的是关于杨辉三角的实际运用
当然阶乘也能做
但为什么我们不用阶乘而是用不怎么平常考的杨辉三角呢?
——————————————————————分割线0
因为编程中:
阶乘增长太快,极易溢出
即使最终结果不大,中间过程也可能溢出
除法顺序不当会导致截断误差(整数除法非精确)
——————————————————————分割线1
如果数据范围更大(如 n≤1000),可以用:
高精度整数(模拟大数运算)
或者边乘边除(约分技巧)
但对于本题 n≤30,递推是最稳妥的选择。
——————————————————————分割线2
在信息学竞赛中,数学公式 ≠ 编程实现方式。很多看似简单的公式(如阶乘形式),在计算机中因数据范围限制无法直接使用。
关键能力是:将数学知识转化为稳定、高效、防溢出的算法实现。
杨辉三角递推是组合数的经典解法,务必掌握其原理与代码模板。
看完了给我顶一下呗