숫자 N이 있다고 가정하고 우리의 임무는 재귀를 사용하여 ln(N!)을 찾는 것입니다. ln()은 기본적으로 로그 기반 e입니다. 이를 해결하기 위해 다음 공식을 사용할 수 있습니다 -
$$\ln\l그룹 N!\rgroup=\ln\l그룹 N*\l그룹 N-1\rgroup *\l그룹 N-2\rgroup *\dotsm*2*1\rgroup=\ln\l그룹 N\rgroup+\ ln\l그룹 N+1\r그룹+\dotsm+\ln\l그룹 1\r그룹$$
예
#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