✏️ 纠错
第 247 题 / 共 301 题
第6题 以下程序中使用了递推方式计算阶乘(n!=1×2×...×n),计算结果正确。
int factorial(int n) {
int res = 1;
for (int i = 0; i < n; ++i) {
res *= i;
}
return res;
}你真棒!
📝 题目解析
【考纲知识点】递推算法的实现、阶乘计算的边界条件
【正确答案】×
【题目解析】
该程序使用递推方式计算阶乘,但存在逻辑错误。
阶乘的定义是n!=1×2×...×n,而在循环中i从0开始,当i = 0 时,res *= i; 会将res置为0,导致最终结果始终为0。正确的实现应该从1开始循环,即for (int i = 1; i <= n; ++i)。
所以该说法错误。