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

โปรแกรม C++ หาผลรวมอนุกรม 1/1! + 2/2! + 3/3! + ... + n/n!


ที่นี่เราจะดูวิธีหาผลรวมของอนุกรมที่กำหนด ค่าของ 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