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

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

循环语句(for为例)

  • 01

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

  • 02

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

  • 03

    运用一个for循环将数值1依次与比他大1的数字相乘直至到17为止。 这里的值比较大,因此int值转化为long值运算。 long factorial = 1L; for (int index = 1; index <= ORIGINAL_NUMBER; index++) { factorial = factorial * index; }

  • 04

    将该for语句写在一个main函数中,运行一下结果。 如果 factorial 是 6,则结果为 720 无误。 如果 factorial 是 17, 则结果为 355687428096000,计算器算得也无误。

递归函数

  • 01

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

  • 02

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

  • 03

    这里要用一个递归函数来处理这个问题。 private static long factorial(long factorial) { if (factorial == 1) { return 1; } return factorial * factorial(factorial - 1); } //这里应该注意,递归函数消耗资源较大,而且long值表示的范围在此也很局限,因个人电脑配置以及JVM内存配置而异,factorial值不应该过大,此处,笔者的机子最多可以算出23的阶乘。

  • 04

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

(0)

相关推荐

  • 如何用Java制作一个能移动的球

    Java可以用来制作很多的动画效果,其中小球动画是最基础的一种.下面小编就通过实例教大家如何用Java制作一个移动的小球. 操作方法 01 首先打开Eclipse软件,新建一个Java项目,注意项目继 ...

  • 如何用Java编写一个九九乘法表

    Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言. 今天介绍如何用Java编写一个九九乘法表. 操作方法 01 Java 技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于PC. ...

  • 如何用java产生一个5个0-100的随机数

    java中的 Random 类是一个随机数产生器,随机数是按照某种算法产生的,一旦用一个值创建 Random 对象,就可以得到一系列的随机数. 操作方法 01 打开eclipse软件,如图所示: 02 ...

  • Java实现阶乘运算

    所谓的阶乘运算就是,例如如1*2*3*4*5*6*7*8*9*10这种运算就是阶乘运算, 常见的就是1-10的运算,下面简单介绍下通过控制台来实现java的阶乘运算. 操作方法 01 打开类似ecli ...

  • 如何用java进行数据库操作

    本文详细介绍了如何用java自带的JDBC进行数据库操作,对每一步骤进行讲解,本文不会涉及到数据库创建,JDK安装等等基础知识,这些知识请自行. 操作方法 01 首先我们应该了解一下java进行数据操 ...

  • 手把手教你如何用c++编一个控制台计算器程序

    初学c++的新手们,是不是手痒痒了,想编一个c++的程序,但却无从下手?没事,我就来教大家如何用c++编一个控制台计算器 编译程序 01 首先,我们要新建一个.cpp程序,单击右键,新建,文本文档. ...

  • 如何用java创建文件和文件夹

    java是近几年很火热的编程语言,下面就介绍些如何用java创建文件夹或者文件.(如果喜欢可以利用循环创建很多的文件和文件夹) 操作方法 01 打开Myeclipse软件,新建class,先导入需要的 ...

  • 如何优雅地用C语言实现阶乘运算——四种方法

    C语言是非常基础的一种编程语言,也是我们学习其他汇编语言的基础.今天小编就来说说,如何利用C语言实现阶乘运算. 操作方法 01 首先,我们输入头文件,然后定义两个整型变量和一个长整型变量,并用scan ...

  • MAKA H5制作是什么意思?如何用MAKA做一个漂亮的微信H5

    MAKA H5制作是一个H5页面制作软件,也就是目前最新的HTML5网络页面,可以在手机上面看,这些网站可以不用代码编辑,除了maka这些网站知名的还有兔展,微页初页之类的. 那么如何用MAKA做一个 ...