ภาพรวมปัญหา
หาผลรวมอนุกรมฮาร์มอนิก: 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)