题解 | #等差数列#

等差数列

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

相关推荐

05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
06-23 11:43
门头沟学院 Java
allin校招的烤冷...:我靠,今天中午我也是这个hr隔一个星期发消息给我。问的问题还是一模一样的😅
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 12:05
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务