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

Chương trình tính tổng lập phương N số tự nhiên đầu tiên trong C++


Cho số nguyên n. Nhiệm vụ: tính tổng lập phương của n số tự nhiên đầu tiên: 1³ + 2³ + ... + n³.

Ví dụ 1

Input – 4

Output – 100

Giải thích: 1³ + 2³ + 3³ + 4³ = 1 + 8 + 27 + 64 = 100.

Ví dụ 2

Input – 8

Output – 1296

Công thức toán học

$$\sum_{i=1}^n i^3 = \left(\frac{n(n+1)}{2}\right)^2 = (1+2+...+n)^2$$

Tổng lập phương bằng bình phương tổng số tự nhiên.

Ví dụ code (lặp)

#include <iostream>
using namespace std;

long long sumOfCubesLoop(int n) {
    long long sum = 0;
    for (int i = 1; i <= n; i++) {
        sum += 1LL * i * i * i;
    }
    return sum;
}

int main() {
    int n = 10;
    cout << "Sum of cubes (loop): " << sumOfCubesLoop(n) << endl;
    return 0;
}

Kết quả

Sum of cubes (loop): 3025

Ví dụ code (công thức O(1))

long long sumOfCubesFormula(int n) {
    long long t = 1LL * n * (n + 1) / 2;
    return t * t;
}

So sánh: Công thức O(1) nhanh hơn hẳn cho n lớn. Cả hai cho kết quả giống nhau (3025 cho n=10 vì 55²=3025).

Lưu ý: Dùng long long để tránh tràn số (n=10⁶ → kết quả ~ 10¹⁸).