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