题解 | #规律数列求和#

规律数列求和

http://www.nowcoder.com/practice/e05d1c142b3d4898be7183289a00ce5f

题意整理。

  • 给定数列:9,99,999,...,9999999999(10个9)。
  • 计算该数列所有项的和。

方法一(循环)

1.解题思路

  • 利用循环模拟计算出每一项。
  • 每轮循环中,将对应项累加到sum。

动图展示: alt

2.代码实现

#include <iostream>
using namespace std;

int main() {

    //记录数列的和
    long long sum=0;
    //记录数列中每一项
    long long num=0;
    for(int i=1;i<=10;i++){
        //模拟计算每一项
        num=num*10+9;
        //将对应项累加到sum
        sum+=num;
    }
    cout<<sum<<endl;
    return 0;
}

3.复杂度分析

  • 时间复杂度:循环总共执行10次,所以时间复杂度为O(1)O(1)
  • 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)O(1)
xqxls的题解 文章被收录于专栏

牛客题解

全部评论
我是以10的次幂减一来得到每个数,我当时就在想,如果要是以5为累加,那又要怎么解,看到你的答案,我顿悟了。
1 回复 分享
发布于 2021-12-19 17:47

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
17
2
分享
牛客网
牛客企业服务