Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tổng chuỗi 2 + (2+4) + (2+4+6) + ... + (2+4+...+2n) trong C++

Cho số nguyên n. Tính tổng chuỗi:

S = 2 + (2+4) + (2+4+6) + ... + (2+4+...+2n)

Ví dụ

n = 3: S = 2 + (2+4) + (2+4+6) = 2 + 6 + 12 = 20

Cách 1: Vòng lặp lồng O(n²)

int sum = 0;
for (int i = 1; i <= n; i++) {
    int even = 2;
    for (int j = 1; j <= i; j++) {
        sum += even;
        even += 2;
    }
}

Cách 2: Công thức toán học O(1)

Số hạng thứ i: 2 + 4 + ... + 2i = i(i+1).

Tổng: S = Σ[i=1..n] i(i+1) = Σ(i² + i) = Σi² + Σi

= n(n+1)(2n+1)/6 + n(n+1)/2
= n(n+1)/2 * [(2n+1)/3 + 1]
= n(n+1)/2 * (2n+4)/3
= n(n+1)(n+2)/3

Chương trình C++

#include <iostream>
using namespace std;

long long calcSeriesSum(int n) {
    return 1LL * n * (n + 1) * (n + 2) / 3;
}

int main() {
    int n = 5;
    cout << "Tong chuoi = " << calcSeriesSum(n); // Output: 70
    return 0;
}

Kết quả

Tong chuoi = 70