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