入门+ · 累加器

阶乘

n! = 1 × 2 × … × n。累加器的乘法版——外加一堂关于 int 有多小的硬课。

题目

输入:一个整数 n(0 ≤ n ≤ 12)。

输出:n!(12! = 479,001,600 —— 能装进 32 位 int 的最大阶乘)。

样例:

输入输出
5120
01

你的解答

Program.cs — 你的解答
"用我的输入试跑"的自定义输入

判题完全在你的浏览器里对隐藏测试运行。代码随打随存(本地)。Ctrl+Enter 判题。

卡住了?提示

提示 1 —— 从 1 开始乘

long result = 1; 然后循环 result = result * i;。从 1 开始,不是 0——而且 0! = 1 是定义,空循环自动处理。

提示 2 —— 为什么 n ≤ 12?

13! = 6,227,020,800,超过 int.MaxValue(2,147,483,647)——会静默回绕。亲眼看看:去练习场跑 Console.WriteLine(479001600 * 13);

解答(先自己试!)
int n = int.Parse(Console.ReadLine());
long result = 1;
for (int i = 2; i <= n; i++) result = result * i;
Console.WriteLine(result);

溢出天花板才是真考点——见第 2 课的陷阱二。下一题:星号金字塔。