C中的序列1.2.3 + 2.3。+…+ n(n + 1)(n + 2)的总和
求出该系列的n个项之和:1.2.3+2.3.4+…+n(n+1)(n+2)。在此1.2.3表示第一项,在2.3.4中表示第二项。
让我们看一个例子,以更好地理解这个概念,
Input: n = 5 Output: 420
说明
1.2.3+2.3.4+3.4.5+4.5.6+5.6.7=6+24+60+120+210=420
第n个项=n(n+1)(n+2);其中n=1,2,3,...
=n(n^2+3n+2)=n^3+3n^2+2n
现在,注意
和=n(n+1)/2;如果第n个项=n
=n(n+1)(2n+1)/6;如果第n个项=n^2
=n^2(n+1)^2/4;如果第n个项=n^3
因此,所需的总和=
n^2(n+1)^2/4+3×n(n+1)(2n+1)/6+2×n(n+1)/2
=n^2(n+1)^2/4+n(n+1)(2n+1)/2+n(n+1)
=n(n+1){n(n+1)/4+(2n+1)/2+1}
=n(n+1){(n^2+n+4n+2+4)/4}
=1/4n(n+1){n^2+5n+6}
=1/4n(n+1)(n+2)(n+3)
有两种方法可以解决此问题,
一种通过使用数学公式,另一种通过循环。
在数学公式方法中,给出了该级数的级数公式的总和。
算法
输入:n个元素的数量。
Step 1 : calc the sum, sum = 1/4{n(n+1)(n+2)(n+3)} Step 2 : Print sum, using standard print method.
示例
#include <stdio.h> #include<math.h> int main() { float n = 6; float area = n*(n+1)*(n+2)*(n+3)/4; printf("The sum is : %f",area); return 0; }
输出结果
The sum is : 756
示例
#include <stdio.h> #include<math.h> int main() { float n = 6; int res = 0; for (int i = 1; i <= n; i++) res += (i) * (i + 1) * (i + 2); printf("The sum is : %d",res); return 0; }
输出结果
The sum is : 756