如何用Java实现双阶乘运算

 时间:2026-02-14 08:36:07

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

如何用Java实现双阶乘运算

2、设这个数字是常量17,也即我们要运算的数值是17的阶乘,也即17!

 private static final int ORIGINAL_NUMBER = 17;

如何用Java实现双阶乘运算

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的阶乘。

如何用Java实现双阶乘运算

4、将该递归函数写在一个main函数中,运行一下结果。

此处,为了不发生折行,我把结果写在两个输出语句里。

  System.out.print(ORIGINAL_NUMBER + "!! = ");

  System.out.println(doubleFactorial(ORIGINAL_NUMBER));

如果 original 是 偶数 6,则结果为 48 无误。

如果 original 是 奇数17, 则结果为 68918850,计算器算得也无误。

如何用Java实现双阶乘运算

  • VS如何更改已经安装好的部件
  • Linux系统编程如何使用计算表达式
  • Boost C++ Libraries 的安装与编译
  • 在C#中怎么循环调用Resources文件中的图片
  • 【编程】Winform窗体修改控件响应的方法名称?
  • 热门搜索
    期房什么时候交首付 family是什么意思 贴瓷砖用什么胶 商砼是什么意思 六经指什么 干物妹什么意思 15万以内买什么车好 甜橙精油的功效与作用 梦见自己怀孕了是什么意思 今年什么时候立春