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

โปรแกรม C++ หาผลรวมของซีรี่ย์ 1/1! +2/2! +3/3! +4/4! + …… n/n!


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