Online Compiler C

#include <stdio.h> int factorial(int n) { int res=1; for(int i=2;i<=n;i++) { res =res*i; } return res; }
这段代码定义了一个计算阶乘的函数 `factorial`。它使用循环从2乘到n,将结果累乘到变量 `res` 中,最后返回结果。函数本身逻辑正确,但需要注意以下几点:

- 当 `n` 为0时,循环条件 `i<=n` 不成立,函数会直接返回 `res` 的初始值1,这符合数学上0的阶乘定义为1的规则。
- 当 `n` 为负数时,循环同样不会执行,返回1,但数学上负数的阶乘没有定义。你可能需要考虑是否要处理这种情况。
- 函数没有检查输入值是否过大,因为阶乘增长很快,`int` 类型可能溢出。例如,13的阶乘已经超过32位整数的范围。