1.1.20

1.1.20 #

解答 #

根据对数的性质可以得到:

$$ \ln(N!) = \ln(N) + \ln(N – 1) + \ln(N – 2)… $$

代码 #

const int n = 4;
Console.WriteLine($"{FactorialLn(n)}");

// ln(N!) =
// ln(N * (N - 1) * ... * 1) =
// ln(N) + ln((N - 1)!)
static double FactorialLn(int n)
{
    if (n == 1)
    {
        return 0;
    }

    return Math.Log(n) + FactorialLn(n - 1);
}