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

 时间:2024-10-13 03:48:19

正整数阶乘指从1乘以2乘以3乘以4一直乘到所要求的数。例如,所要求的数是n,则阶乘式是1×2×3×……×n,设得到的积是x,x就是n的阶乘。这里,我介绍两种用Java实现阶乘运算的方方式。

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

工具/原料

一台再正常不过的已经配置了java环境的电脑

循环语句(for为例)

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 i荏鱿胫协ndex = 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实现一个阶乘运算
  • C语言: 输出所有的“水仙花数”
  • c语言输入三个整数,按从小到大的顺序输出
  • C语言编程:输入三个数取最大值/三个数求最大值
  • C语言如何打印九九乘法表?
  • c语言输出100到200之间的素数
  • 热门搜索
    以爱国为主题的手抄报 岭南文化手抄报 读书小报手抄报图片 趣味数学手抄报 四年级环保手抄报 国庆节手抄报资料 法制在我心中手抄报 关于数学知识的手抄报 防火手抄报图片 名人名言手抄报图片