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

Tìm số Penta-gonal Pyramidal (Kim cương ngũ giác) bằng C++


Số Penta-gonal Pyramidal (kim cương ngũ giác) là tổng các số Penta-gonal (ngũ giác) đầu tiên. Số Penta-gonal thứ n = (3n² - n) / 2. Ví dụ:

Input : N = 4 Output : 40 Giải thích : Tổng 4 số penta-gonal đầu: 1 + 5 + 12 + 22 = 40 Input : N = 6 Output : 126 Giải thích : Tổng 6 số penta-gonal đầu: 1 + 5 + 12 + 22 + 35 + 51 = 126

Cách đơn giản (Simple Approach)

Duyệt i = 1..N, cộng dồn (3*i*i - i)/2. Độ phức tạp O(N).

Ví dụ

#include <bits/stdc++.h>
using namespace std;

int main() {
    int N = 6, SUM = 0;
    for (int i = 1; i <= N; i++)
        SUM += (3 * i * i - i) / 2;
    cout << "Nth Pentagonal Pyramidal Number: " << SUM << endl;
    return 0;
}

Kết quả

Nth Pentagonal Pyramidal Number: 126

Cách hiệu quả: Công thức trực tiếp

Công thức đóng: N² * (N + 1) / 2. Tính O(1).

Ví dụ

#include <bits/stdc++.h>
using namespace std;

int main() {
    int N = 6, result;
    result = N * N * (N + 1) / 2;
    cout << "Nth Pentagonal Pyramidal Number: " << result << endl;
    return 0;
}

Kết quả

Nth Pentagonal Pyramidal Number: 126

Kết luận

Đã trình bày hai cách tính số Penta-gonal Pyramidal thứ N: duyệt O(N) và công thức O(1). Code C++ mẫu, dễ chuyển sang C, Java, Python.