如何用Java实现一个阶乘运算

2025-11-08 19:29:17

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

如何用Java实现一个阶乘运算

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

 private static final int ORIGINAL_NUMBER = 17;

如何用Java实现一个阶乘运算

3、运用一个for循环将数值1依次与比他大1的数字相乘直至到17为止。

这里的值比较大,因此int值转化为long值运算。

long factorial = 1L;

for (int index = 1; index <= ORIGINAL_NUMBER; index++) {

  factorial = factorial * index;

}

如何用Java实现一个阶乘运算

4、将该for语材注句写在一个main函数中,运行一下结果。

如果 factorial 是 6,则结果为 720 无误。

如果 factorial 是 17, 则结果为 355687428096000,计算器算得也无误。

如何用Java实现一个阶乘运算

1、如同第一种方式一样,首先创建工程,或使用已有工程,在工程下创建包,包内新建一个类,我命名为Factorial类,大家根据自己喜好随便命名,但请保持类名与文件名一致。

如何用Java实现一个阶乘运算

2、第一种方式我设这个数字是常量17,在这里,为了做对比试验,因此,我还是将这个值设为17,也即我们要运算的数值是17的阶乘,也即17!

 private static final int ORIGINAL_NUMBER = 17;

如何用Java实现一个阶乘运算

3、这里要用一个递归函数来处理这个问题。

private static long factorial(long factorial) {

  if (factorial == 1) {

    return 1;

  }

  return factorial * factorial(factorial - 1);

}

//这里应该注意,递归函数消耗资源较大,而且long值表示的范围在此也很局限,因个人电脑配置以及JVM内存配置而异,factorial值不应该过大,此处,笔者的机子最多可以算出23的阶乘。

如何用Java实现一个阶乘运算

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

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

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

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

如果 factorial 是 6,则结果为 720 无误。

如果 factorial 是 17, 则结果为 355687428096000,计算器算得也无误。

如何用Java实现一个阶乘运算

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢