使用 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 次瀏覽

開啟您的職業生涯

完成課程以獲得認證

開始
廣告
© . All rights reserved.