题解 | #等差数列#
等差数列
http://www.nowcoder.com/practice/f792cb014ed0474fb8f53389e7d9c07f
题意:
求首项为2,公差为3的等差数列前n项和
解法一(数学公式)
由等差数列前n项和公式:
即可求解
对应到本题,答案即为:
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
int n;
while(cin>>n){
cout<<n*2+n*(n-1)/2*3<<endl;
}
return 0;
}
时间复杂度:
空间复杂度:
,程序中没有开额外的数组,也没有递归调用,故空间复杂度为
解法二(循环计算)
我们使用循环来生成这个数列,然后计算总和即可。
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
int n;
while(cin>>n){
int ans=0;//答案
int x=2;//当前数字
while(n--){
ans+=x;
x+=3;//每次+3
}
cout<<ans<<endl;
}
return 0;
}
时间复杂度:
空间复杂度:
,程序中没有开额外的数组,也没有递归调用,故空间复杂度为)


查看7道真题和解析