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

ค้นหาค่าของ ln(N!) โดยใช้ Recursion โดยใช้ C++


สมมติว่าเรามีตัวเลข N หน้าที่ของเราคือค้นหา ln(N!) โดยใช้การเรียกซ้ำ ln() เป็นพื้นฐานล็อกฐาน e เพื่อแก้ปัญหานี้ เราสามารถใช้สูตรนี้ -

$$\ln\lgroup N!\rgroup=\ln\lgroup N*\lgroup N-1\rgroup *\lgroup N-2\rgroup *\dotsm*2*1\rgroup=\ln\lgroup N\rgroup+\ ln\lgroup N+1\rgroup+\dotsm+\ln\lgroup 1\rgroup$$

ตัวอย่าง

#include<iostream>
#include<cmath>
using namespace std;
double factLog(int n) {
   if (n <= 1)
      return 0;
   return factLog(n - 1) + log(n);
}
int main() {
   int N = 3;
   cout << factLog(N);
}

ผลลัพธ์

1.79176