题解 | #等差数列#

等差数列

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;
}
时间复杂度:,我们需要枚举数列每个数字,故时间复杂度为
空间复杂度:,程序中没有开额外的数组,也没有递归调用,故空间复杂度为
全部评论

相关推荐

dongsheng66:如果想进大厂的话,在校经历没必要占这么大篇幅,可以把专业技能单独放一个专栏写,可以加个项目经历
点赞 评论 收藏
分享
Java抽象带篮子:难蚌,点进图片上面就是我的大头😆
点赞 评论 收藏
分享
美团 后端开发 总包n(15%是股票)
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务