跳到正文
信奥逐课

第 116 课

阶乘

🟢 入门 约 5 分钟

一句话理解

阶乘 n! = 12…*n,是最典型的递归例题。

为什么要学

用来练习出口和规模缩小,不代表比赛里真去递归算阶乘。

讲解

f(n)=n*f(n-1),f(0)=1。n 稍大就会爆 long long,10! 已经 3,628,800,20! 超出 64 位。

比赛里阶乘常用循环,并按题目取模。

例子

long long fac(int n) {
    if (n == 0) return 1;
    return n * fac(n - 1);
}

fac(4)=43211=24。

常见错误

练习 做完再看下一课

fac(3)?

long long fac(int n){if(n==0)return 1;return n*fac(n-1);}
在线练习 C++ 在浏览器里编译,代码不会上传

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

进度保存在本机浏览器里。

左右方向键也可翻课