如何找到序列的求和公式: :0,1,3,6,10,15,...,n
请注意第一个元素是0。
答案 0 :(得分:6)
该序列是Triangular number,也称为A000217。
可以使用n
计算条目f(n) = (n * (n+1)) / 2
的值。
正如评论所指出的,这仅计算f(n)
的值,而不是系列0..n
的总和。总和可以根据Wikipedia按s(n) = n * (n+1) * (n+2) / 6
计算。这些数字为Thetrahedral numbers或A000292。
n | f(n) | s(n)
0 | 0 * 1 / 2 = 0 | 0 * 1 * 2 / 6 = 0
1 | 1 * 2 / 2 = 1 | 1 * 2 * 3 / 6 = 1
2 | 2 * 3 / 2 = 3 | 2 * 3 * 4 / 6 = 4
3 | 3 * 4 / 2 = 6 | 3 * 4 * 5 / 6 = 10
4 | 4 * 5 / 2 = 10 | 4 * 5 * 6 / 6 = 20
5 | 5 * 6 / 2 = 15 | 5 * 6 * 7 / 6 = 35
答案 1 :(得分:1)
序列中的i
个数字为i(i-1)/2=(i^2-i)/2
。将此值从1
汇总到n
会得到n(n+1)(2n+1)/12-n(n+1)/4=n(n+1)((2n+1)/12-3/12)=n(n+1)(2n-2)/12=n(n+1)(n-1)/6
。
但是,数学问题属于http://math.stackexchange.com。
答案 2 :(得分:0)
这是一个算法的C
实现,应该可以解决这个问题
int sum = 0;
for(int i = 0; sum <= n; i++)
{
sum = sum + (sum + i)
}