C语言编程:求s=1+3+6+10+15+……,计算前10项之和?
#include
int main()
{
int i;
int j;
int sum = 0;
for(i=1;i
{
j=3*i;
sum+=j;
}
printf("Sum = %d",sum);
return 0;
}
等差数列求和公式推导?
等差数列的求和公式可以用两种方法推导得出。
方法一:
我们设等差数列的前 n 项和为 Sn,首项为 a1,公差为 d,则:
Sn = a1 + (a1+d) + (a1+2d) + ... + [a1+(n-1)d]
然后,我们计算:
Sn + Sn = [a1 + (a1+d) + (a1+2d) + ... + (a1+(n-1)d)] + [(a1+(n-1)d) + (a1+(n-2)d) + ... + (a1+d) + a1]
相邻的项相加,得到:
2Sn = [(2a1 + (n-1)d) + (2a1 + (n-1)d) + ... + (2a1 + (n-1)d)]
将等号右边的一系列项写成 n 个 2a1 + (n-1)d 的形式,则:
2Sn = n[2a1 + (n-1)d]
化简可得求和公式:
Sn = n/2 [2a1 + (n-1)d]
方法二:
递推法利用等差数列的递推关系进行推导。
首先,我们设等差数列的前 n 项和为 Sn,首项为 a1,公差为 d。假设我们已经知道了前 n-1 项的和 S(n-1),那么第 n 项的值为:
an = a1 + (n-1)d
将前 n 项的和分解为前 (n-1) 项的和与第 n 项的和,有:
Sn = S(n-1) + an
将 an 带入得:
Sn = S(n-1) + a1 + (n-1)d
接着,我们通过多次递推,将 S1 代入,得到:
Sn = na1 + (1+2+...+(n-1))d
然后,我们利用高斯公式:
1+2+...+(n-1) = n(n-1)/2
将其代入得到:
Sn = n/2 [2a1 + (n-1)d]
由此也得到了等差数列求和公式。
这两种方法各有优劣,但从中可以看到公式的本质,即等差数列前 n 项和与其首项和公差之间的关系。
推导过程
(1)假设公差为d的等差数列前n项和为Sn:
S n=a1+a2+a3+——·+an
(2)将数列中的每一项倒序排列,并将等差数列的规律添入:
S n=a1+(a1+d)+(a1+2d)+——·+[a1+(n-1)d]
(3)将公式中的每一项添上第一项和最后一项,然后全部除以2:
S n={a1+a1+(n-1)d}×n/2
(4)根据等差数列的通项公式,将公式中的a1和an用n和d代替:
S n={n[a1+ a1+(n-1)d]} / 2
(5)为了让公式更加通用,将a1+a1+(n-1)d的和记为2a1+(n-1)d:
S n={n[2a1+(n-1)d]} / 2
即可得到等差数列求和公式。因此,对于任意长度为n的等差数列,可以使用公式S n={n[2a1+(n-1)d]} / 2来求和。
用倒序相加法。等差数列前n项和等于(首项+尾项)×项数÷2,根据通项公式第n项等于首项+(n-1)×公差,也可以得到等差数列前n项和等于n×首项+n(n-1)d÷2。