Giả sử chúng ta có một số N, nhiệm vụ của chúng ta là tìm ln(N!) bằng đệ quy. ln() về cơ bản là logarit cơ số e. Để giải quyết bài toán này, chúng ta có thể sử dụng công thức sau:
$$\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$$
Ví dụ
#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); }
Kết quả
1.79176