题解 | #等差数列#

等差数列

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

相关推荐

11-28 17:58
门头沟学院 Java
美团 JAVA开发 n×15.5
牛客786276759号:百度现在晋升很难的 而且云这块的业务没美团好 你看百度股价都跌成啥样了
点赞 评论 收藏
分享
程序员猪皮:看不到八股什么意思
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务