入門 · 迴圈 + 累加器

1 到 N 求和

讀入 n,列印 1 + 2 + … + n。累加器模式的純形態——順便認識高斯的捷徑。

題目

輸入:一個整數 n(1 ≤ n ≤ 10,000)。

輸出:一行,1 到 n 所有整數之和。

樣例:

輸入輸出
515

你的解答

Program.cs — 你的解答
"用我的輸入試跑"的自定義輸入

判題完全在你的瀏覽器裡對隱藏測試執行。程式碼隨打隨存(本地)。Ctrl+Enter 判題。

卡住了?提示

提示 1 —— 累加器

迴圈前宣告 int sum = 0;。每輪 sum += i;——這個模式你以後寫的每一次聚合都在用。

提示 2 —— 或者乾脆不用迴圈

高斯:1..n 的和是 n * (n + 1) / 2。試著給自己證明為什麼 n * (n + 1) 一定是偶數。

解答(先自己試!)
int n = int.Parse(Console.ReadLine());
int sum = 0;
for (int i = 1; i <= n; i++)
{
    sum += i;
}
Console.WriteLine(sum);
// 高斯公式——O(1),沒有迴圈
int n = int.Parse(Console.ReadLine());
Console.WriteLine(n * (n + 1) / 2);

留意公式版裡的整數除法:n * (n + 1) / 2 除的是乘積,而乘積必然是偶數——所以永遠不會丟小數。下一題:三數取最大。