说明:
我遇到一个问题,问题是这样说的:“编写一个递归的静态方法计算ln(N!)的值”,那刨除N!的话,就是让我计算以常数e为底数的对数,而Math.log(M)就可以计算以常数e为底数的的对数,当然如果想计算log2M的值,那就可以使用Math.log(M)/Math.log(2)来计算
代码实现:
public class Node {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入一个正整数:");
int N = sc.nextInt();
System.out.println("ln(" + N + "!)=" + Math.log(getJieCheng(N)));
}
/**
* 计算阶乘
*
* @param N 计算数字N的阶乘
* @return
*/
public static long getJieCheng(int N) {
if (N == 0) {
return 1;
}
return N * getJieCheng(N - 1);
}
}
结果:
输入一个正整数:
6
ln(6!)=6.579251212010101