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
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C编程
C++
C#
MongoDB
MySQL
Javascript
PHP