使用C ++使用递归查找ln(N!)的值。
假设我们有一个数字N,我们的任务是使用递归找到ln(N!)。ln()基本上是对数e。为了解决这个问题,我们可以使用这个公式-
$$\ln\lgroupN!\rgroup=\ln\lgroupN*\lgroupN-1\rgroup*\lgroupN-2\rgroup*\dotsm*2*1\rgroup=\ln\lgroupN\rgroup+\ln\lgroupN+1\rgroup+\dotsm+\ln\lgroup1\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