สมมติว่าเรามีตัวเลข 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