C語言中 1.2.3 + 2.3.4 + … + 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

更新於: 2019年10月7日

563 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告