入門+ · 累加器

階乘

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 課的陷阱二。下一題:星號金字塔。