题意整理。

  • 给定数列: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)