top1编程
← 返回题目
题解

输出数列前n项的数据和

1 条题解

  • 0
    @ 2026-8-5 0:48:24

    解题思路

    数列 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