题目的主要信息:
- 有数列为:9,99,999,...,9999999999(10个9)
- 求这个数列的和
具体做法:
该数列第一个数为,后续递推公式为,其中。
有了递推公式,我们可以从9开始,循环10次,每次累加结果,并根据累加公式求出下一个元素的值。
为了防止累加和越界,我们最好使用long long。
#include <iostream>
using namespace std;
int main() {
long long output = 0;
long long base = 9; //以9为基数
for(int i = 0; i < 10; i++){ //一共十个数字
output += base; //累加数列
base = base * 10 + 9; //当前数列乘10加9就是下一个数列
}
cout << output << endl;
return 0;
}
复杂度分析:
- 时间复杂度:,10次循环,常数级别
- 空间复杂度:,无额外空间