入门 · 循环 + 累加器

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 除的是乘积,而乘积必然是偶数——所以永远不会丢小数。下一题:三数取最大。