如何用Java实现双阶乘运算
1、创建工程,或使用已有工程,在工程下创建包,包内新建一个类,我命名为DoubleFactorial类,大家根据自己喜好随便命名,但请保持类名与文件名一致。

2、设这个数字是常量17,也即我们要运算的数值是17的阶乘,也即17!
private static final int ORIGINAL_NUMBER = 17;

3、这里我用一个递归函数来处理这个问题。
考虑到奇偶问题,if语句进行判断:
private static long doubleFactorial(long original) {
if (original % 2 == 0) {
if (original == 2) {
return 2L;
}
return original * doubleFactorial(original - 2);
} else {
if (original == 1) {
return 1L;
}
return original * doubleFactorial(original - 2);
}
}
//递归函数消耗资源较大,而且long值表示的范围在此也很局限,因个人电脑配置以及JVM内存配置而异,factorial值不应该过大,此处,笔者的机子最多可以算出23的阶乘。

4、将该递归函数写在一个main函数中,运行一下结果。
此处,为了不发生折行,我把结果写在两个输出语句里。
System.out.print(ORIGINAL_NUMBER + "!! = ");
System.out.println(doubleFactorial(ORIGINAL_NUMBER));
如果 original 是 偶数 6,则结果为 48 无误。
如果 original 是 奇数17, 则结果为 68918850,计算器算得也无误。
