ที่นี่เราจะดูว่าเราสามารถหาผลรวมของซีรีส์ที่กำหนดได้อย่างไร ค่าของ 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