题解
输出数列前n项的数据和
1 条题解
-
0
解题思路
数列 2、4、8、16、32……是公比为 2 的等比数列,第 i 项就是
2^i。用一个变量term从 1 开始每轮乘 2(得到 2、4、8……),累加进sum。循环 n 轮后,term是第 n 项,sum是前 n 项和。参考代码
#include <iostream> using namespace std; int main() { int n; cin >> n; long long term = 1; // 当前项,每次乘2 long long sum = 0; // 前n项和 for (int i = 1; i <= n; i++) { term *= 2; // 2的i次方 sum += term; // 累加 } cout << term << endl; // 第n项 cout << sum << endl; // 前n项和 return 0; }复杂度分析
循环 n 次,n 最大 15,时间复杂度 O(n);用 long long 存,额外空间复杂度 O(1)。
- 1