使用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