`

Java实现阶乘代码的两种方法

阅读更多
第一种是通过循环方式计算, 又叫迭代方式

首先看看阶乘的定义

正整数阶乘指从1乘以2乘以3乘以4一直乘到所要求的数。

例如所要求的数是4,则阶乘式是1×2×3×4,得到的积是24,24就是4的阶乘。 例如所要求的数是6,则阶乘式是1×2×3×……×6,得到的积是720,720就是6的阶乘。例如所要求的数是n,则阶乘式是1×2×3×……×n,设得到的积是x,x就是n的阶乘。


阶乘的公式是
n!=n*(n-1)*(n-2)....*2*1
这个公式可以通过一个java的循环来实现,也就是我们要看的第一种方法。

for(int i=number; i>0;i--)
这个循环在i=0的时候结束, 而阶乘的结果通过result*=i来计算。

public static int compute(int number)
	{
		int result=1;
		
		for(int i=number;i>0;i--){
			result*=i;
		}
		
		return result;
	}
	
	public static void main(String[] args)
	{
		System.out.println(compute(5)); //120
	}


这种方式没有调用程序本身, 接下来看看调用程序本身的方法。

---
阶乘的公式还可以是 n!=n*(n-1)!,
就是用n乘以n-1的阶乘.
而n-1的阶乘则可以表示为(n-1)*(n-2)!。
以此类推,我们就可以写一个函数来表示这一过程
f(x)  = n*f(x-1),
这里的x就是参数, 参数是不断减小的。
---

通过递归来实现阶乘。递归就是方法调用自身, 最终通过一个出口来结束程序的调用。
这个出口要保证程序不出现死循环。
在上面的f(x)- n*f(x-1)这里, 出口就可以设置为
if(1==number)
{return 1;}

代码实现:
public static int cur(int number){
		if(number!=0){
			return number*cur(number-1);
		}else return 1;
	}


分享到:
评论

相关推荐

    用java实现10000的阶乘(2种方法)

    本文将深入探讨如何使用Java语言实现计算10000的阶乘,我们将讨论两种不同的方法,每种方法都有其特定的时间复杂度和效率。 ### 方法一:递归计算 递归是最直观的解决阶乘问题的方法。基本思路是定义一个函数,...

    java递归实现 阶乘

    在编程领域,递归是一种强大的工具,它允许函数或方法调用自身来解决问题。Java作为面向对象的语言,同样支持递归编程。在这个实例中,我们将深入探讨如何使用Java递归实现阶乘计算,并以1到10的数字为例进行演示。 ...

    Java计算阶乘 源代码

    以下是两种可能的实现方式: **1. 使用循环计算阶乘** ```java public class Factorial { public static long factorial(int n) { long result = 1; for (int i = 1; i ; i++) { result *= i; } return ...

    【java学习记录】11.多线程实现阶乘计算(Thread类和Runnable接口)

    这两种方法都可以实现阶乘计算的多线程化,主要区别在于继承`Thread`时,线程行为直接与类绑定,而实现`Runnable`接口时,线程行为是通过对象实例传递的。选择哪种方式取决于具体需求和设计考虑,例如是否需要复用类...

    阶乘的源代码

    在Java中,可以通过递归或循环两种方式实现阶乘的计算。递归方法简洁易懂,但可能面临栈溢出的问题;而循环方法虽然稍微复杂一些,但更适用于处理大数计算。理解并能熟练运用这些知识点,对提升编程技能和解决实际...

    Java阶乘求和计算范例.rar

    在本示例中,我们关注的是使用Java编程语言来实现阶乘求和的计算过程。阶乘是一个数学概念,表示一个正整数n的所有小于等于n的正整数的乘积,通常用n!表示。例如,5!(5的阶乘)等于5 * 4 * 3 * 2 * 1 = 120。这个...

    java中的1到20的阶乘

    给定的Java代码实现了计算1到20的阶乘并累加求和的功能。我们来逐行分析这段代码: 1. **类定义**:`public class ds {` 这里定义了一个名为`ds`的公共类。 2. **主函数**:`public static void main(String[] ...

    五的阶乘《java代码》

    总结,本例中的Java代码实现了计算五的阶乘的功能,展示了两种不同的计算方法——循环和递归。理解并掌握这些基础知识对于Java程序员来说非常重要,因为它们是编程思维的基础,并在实际项目中频繁出现。

    简单的java大数阶乘运算算法

    总结,本文介绍了如何使用Java的`BigInteger`类进行大数阶乘的计算,分别展示了递归和迭代两种算法,并讨论了它们的优缺点。在实际编程中,根据问题的具体需求和规模,可以选择合适的算法进行实现。

    java用接口写的1—5累加和阶乘的代码

    在Java编程语言中,接口(Interface)是一种定义行为规范的抽象类型,它允许类实现多个接口,从而实现多继承。接口通常用来实现组件之间的解耦,使得代码更加灵活且易于扩展。在这个“java用接口写的1—5累加和阶乘...

    java阶乘应用小程序

    Java阶乘应用小程序是一种常见的编程练习,用于帮助初学者理解递归、循环和数学概念在编程中的应用。在这个小程序中,我们将探讨如何使用JAVA来计算一个整数的阶乘,并进一步实现1到20所有整数阶乘的和。下面我们将...

    编程Java求任意一个正整数的阶乘.doc

    Java语言中实现正整数阶乘的两种方法 Java是一种高级语言,广泛应用于安卓开发、Web开发、桌面应用开发等领域。在数学运算中,阶乘是一个非常重要的概念,它是指一个正整数的连续乘积。例如,5的阶乘是5*4*3*2*1=...

    关于java 阶乘作业

    代码使用了AWT库来构建图形用户界面(GUI),这是Java早期用于创建图形界面的一种方法。以下是对代码主要部分的详细解释: 1. 类定义:`Cbkjava` 实现了 `ActionListener` 接口,这意味着该类将处理按钮点击事件。 ...

    Java 实例 - 阶乘源代码-详细教程.zip

    在Java中,阶乘可以有两种常见的实现方式:递归和循环。 1. **递归实现**: 递归是函数自身调用自身的一种方法。阶乘的递归实现如下: ```java public int factorial(int n) { if (n == 0 || n == 1) { return...

    阶乘运算的源码

    通过具体的代码示例,我们不仅了解了这两种方法的基本原理和实现细节,还学习了如何在实际编程中应用它们。无论是循环还是递归,都有各自的适用场景和优缺点,在选择时应根据具体需求和上下文环境综合考虑。

    讲递java实现 代码

    2. **Recursion.java**:这是一个更通用的递归实现示例,可能包含了多种不同的递归算法,如阶乘计算、汉诺塔、快速排序等。递归在解决这些问题时,通常会将大问题分解为小问题,直到小问题可以直接求解,然后通过...

    按照Java编码规范实现的阶乘算法

    在Java中实现阶乘算法,我们可以使用递归或循环两种方法。这里我们遵循Java编码规范,使用循环来实现: ```java public class Factorial { // 1. 命名规范:类名首字母大写,驼峰命名 public static long ...

    计算阶乘的的源代码

    根据提供的文件信息,本文将详细解析“计算阶乘的源代码”,主要涉及的知识点包括:JSP基础概念、HTML与JavaScript结合使用的方式、递归函数实现阶乘计算的方法。 ### JSP基础概念 JSP(JavaServer Pages)是一种...

    jsp求阶乘的demo代码.zip

    阶乘的计算可以通过递归或循环两种方式实现。在Java中,使用循环实现阶乘可能更为直观和高效。递归方法会定义一个函数,该函数不断调用自身,直到基本情况(n == 1或n == 0)为止;而循环方法则通过一个for或while...

    Java 编写的1到10的阶乘和

    在Java中实现阶乘的计算,可以为初学者提供基础的编程实践,理解循环和递归等概念。 在给定的"Java 编写的1到10的阶乘和"作业中,我们需要编写一个程序来计算1到10每个整数的阶乘,并将它们相加得到和。这个过程...

Global site tag (gtag.js) - Google Analytics