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

更新于: 2019 年 10 月 30 日

144 次浏览

开启您的职业生涯

完成课程以获得认证

开始
广告