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/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

回到顶部