ที่นี่เราจะดูวิธีหาผลรวมของอนุกรมที่กำหนด ค่าของ n จะถูกกำหนดโดยผู้ใช้ เราสามารถแก้ปัญหานี้โดยสร้างฟังก์ชันแฟกทอเรียล (factorial) และหาแฟกทอเรียลในแต่ละขั้นตอนในลูป แต่การคำนวณแฟกทอเรียลเป็นงานที่ค่าใช้จ่ายสูงกว่าการบวกทั่วไป เราจะใช้แฟกทอเรียลของพจน์ก่อนหน้าในพจน์ถัดไป เช่น 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;
}
int 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