数列求和问题
题目
有一数列如下:
1
2
4
7
11
16
22
…
… 试求该数列前
N 项之和。
输入
一个整数
输出
一个整数。
思路
从题目的数列可以很明显的看到,这是一个递增的加法,两个数之间的差会随着加法的持续往下递增(1-2-3-4-5-6…) 因此,我们需要求出这个的固定公式便于我们在 循环中使用。这便是递推算法的基本概念,即先求出基本公式在持续往下求出。我们可以知道中间的差值会越来越大,因此,我们用一个数字去代表差值即可(随着循环不断+1), 然后,我们再用一个数组来存取变量,接着再用n来输入得到的数字,最后输出即可。
代码
#include<bits/stdc++.h>
using namespace std;
int f[1010];
long long s=1,n;
int main()
{
f[1]=1;
cin>>n;
for(int i=2;i<=n;i++)
{
f[i]=f[i-1]+i-1;
s+=f[i];
}
cout<<s;
return 0;
}