ที่นี่เราจะดูว่าเราสามารถหาผลรวมของซีรีส์ที่กำหนดได้อย่างไร ค่าของ n จะถูกกำหนดโดยผู้ใช้ เราสามารถแก้ปัญหานี้ได้โดยการสร้างฟังก์ชันแฟกทอเรียล และรับแฟคทอเรียลในแต่ละขั้นตอนในลูป แต่การคำนวณแบบแฟกทอเรียลนั้นมีค่าใช้จ่ายสูงกว่าการบวกปกติ เราจะใช้พจน์แฟกทอเรียลก่อนหน้าในเทอมถัดไป ชอบ 3! คือ (3 * 2 * 1) และ 4! คือ 4*3!. ดังนั้นถ้าเราเก็บ 3! ในตัวแปรบางตัว เราสามารถใช้สิ่งนั้นและเพิ่มจำนวนถัดไปเท่านั้นเพื่อให้ได้แฟกทอเรียลตัวถัดไปอย่างง่ายดาย
อัลกอริทึม
sum_series_fact(n)
begin res := 0 denominator := 1 for i in range 1 to n, do denominator := denominator * i res := res + i / denominator done return res end
ตัวอย่าง
#include<iostream> using namespace std; float series_result(int n) { float denominator = 1; float res = 0; for(int i = 1; i<= n; i++) { denominator *= i; res += float(i/denominator); } return res; } main() { int n; cout << "Enter number of terms: "; cin >> n; cout << "Result: " << series_result(n); }
ผลลัพธ์
Enter number of terms: 5 Result: 2.70833
ผลลัพธ์
Enter number of terms: 3 Result: 2.5