Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ผลรวมอนุกรมฮาร์มอนิกใน C++ (Harmonic Series Sum)

ภาพรวมปัญหา

หาผลรวมอนุกรมฮาร์มอนิก: 1 + 1/2 + 1/3 + ... + 1/n

ตัวอย่าง

n = 7 → 1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 ≈ 2.59286

วิธีแก้ปัญหา

ไม่มีสูตรปิดสำหรับอนุกรมฮาร์มอนิก ต้องคำนวณโดยวนลูป

โค้ด C++

#include <iostream>
using namespace std;

float calcSeriesSum(int n) {
    float sumVar = 0.0f;
    for (float i = 1; i <= n; i++)
        sumVar += 1.0f / i;
    return sumVar;
}

int main() {
    int n = 7;
    cout << "The sum of series till " << n << " is " << calcSeriesSum(n);
    return 0;
}

หมายเหตุ

  • อนุกรมฮาร์มอนิก发散 (diverges) เมื่อ n → ∞
  • ค่าประมาณ: H_n ≈ ln(n) + γ (γ ≈ 0.57721 คือค่าคงที่ออยเลอร์-มาสเชอรอนี)
  • เวลา: O(n), พื้นที่: O(1)