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 = 5Output: 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/4 n(n + 1){n ^ 2 + 5n + 6}
= 1/4 n(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
以上是 C中的序列1.2.3 + 2.3。+…+ n(n + 1)(n + 2)的总和 的全部内容, 来源链接: utcz.com/z/338492.html