公式證明: 1+2+3+...+(n-2)+(n-1)+n = n(n+1)/2
1 + 2 + 3 +...+ (n-2) +(n-1) + n = S--------第1️式
把 第1式 倒過來寫,成 第2式:
n + (n-1) +(n-2) +...+ 3 +2 + 1 = S--------第2式
第1式 加上 第2式:
(n+1) + [(n-1)+2] + [(n-2)+3] +...+ [(n-2)+3] + [(n-1)+2] + (n+1) = 2S
整理一下:
(n+1) + (n+1) + (n+1) +...+ (n+1) + (n+1) + (n+1) = 2S
總共有 n 個 (n+1),所以進一步整理成:
n(n+1) = 2S
S = n(n+1)/2
ref: 維基百科 https://zh.m.wikipedia.org/wiki/1_%2B_2_%2B_3_%2B_4_%2B_%E2%80%A6
所以 1+2+3+...+(n-2)+(n-1)+n 的運算既可以寫成:
public static decimal Sum(int[] numbers)
{
int output= numbers[0];
for(int i = 1; i < numbers.Length; ++i)
{
output += numbers[i];
}
return output;
}
或:
using System.Linq;
public static decimal Sum(int[] numbers)
{
return numbers.Sum();
}
或:
public static decimal Sum(int[] numbers)
{
return numbers.Length*(numbers.Length + 1) /2;
}
留言列表