使用C ++使用递归查找ln(N!)的值。

假设我们有一个数字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