- 浏览: 375944 次
- 来自: 北京
文章分类
- 全部博客 (237)
- XML (6)
- JavaSE (39)
- Junit (1)
- Maven (10)
- JavaScript (12)
- JavaEE (16)
- HTML5 (10)
- java多线程 (8)
- Hibernate (30)
- Java反射 (3)
- Spring (11)
- Struts (1)
- svn (2)
- linux (12)
- 代码实例 (1)
- 设计模式 (1)
- UML (1)
- javassist (1)
- Oracle (3)
- Hibernate异常 (9)
- DWR (6)
- Java泛型 (2)
- SpringMVC (11)
- Dbunit (3)
- github (2)
- Algorithm (1)
- zTree (1)
- jquery (7)
- freemarker (4)
- mysql (5)
- ffmpeg (1)
- 编码 (1)
- lucene (15)
- hadoop (1)
- JVM (1)
- Regular Expressions (5)
- myeclipse (1)
- 爬虫 (7)
- 加密 (3)
- WebService (2)
- Socket (2)
- Windows (1)
最新评论
-
wxpsjm:
好直接
HV000030: No validator could be found for type: java.lang.Integer. -
wxhhbdx:
学习了,对新手来说很不错的教程。
SpringMVC入门 (二) 数值传递 -
xgcai:
正好在学dwr
DWR入门 (二)用户实例
第一种是通过循环方式计算, 又叫迭代方式
首先看看阶乘的定义
正整数阶乘指从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来计算。
这种方式没有调用程序本身, 接下来看看调用程序本身的方法。
---
阶乘的公式还可以是 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;}
代码实现:
首先看看阶乘的定义
正整数阶乘指从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; }
发表评论
-
Socket编程的HelloWorld实例
2014-11-07 15:05 900public class Client { ... -
ImageIO宋体出现小方框的解决
2014-11-03 16:34 927http://www.blogjava.net/yuanqix ... -
ArrayList根据条件+for循环批量删除的方法
2014-09-23 11:39 2722场景如下: ArrayList<Obj> list ... -
Java内部类的实例化
2014-08-06 15:51 1036class A{ getInstance(){ ... -
通过Thread.sleep把任务平均分配给线程按顺序执行的小例子
2014-07-22 10:46 1083package com.lj.test.JavaSe4; ... -
输入两个整数, 计算百分比
2014-07-21 18:01 1466public static String getPercen ... -
timer cancel方法的一个小实例
2014-07-21 12:14 1134package com.lj.timer; import ... -
通过Calendar获取上个月的最后一天
2014-06-26 12:11 2871Calendar cal=Calendar.getI ... -
通过BigInteger进行数字进制的相互转换
2014-06-24 11:09 25571. 十六进制转换为十进制 BigInteger deci ... -
[转]RSA实例
2014-06-18 17:27 911package com.lj.rsa; import j ... -
[转]sun.misc.BASE64Encoder找不到jar包的解决方法
2014-06-18 15:43 9421.右键项目-》属性-》java bulid path-》jr ... -
空Object转换String的陷阱
2014-06-17 15:45 806Object a=null; String b ... -
Java Convert Long to Date
2014-06-16 18:06 768问题: I have list with long value ... -
[转]JAVA中List&Set转换
2014-06-07 14:23 526JAVA中List&Set转换 list = new ... -
aes加密时的Illegal key size or default parameters
2014-06-06 14:21 4198KeyGenerator kgen = KeyGenerat ... -
String.replaceLast()
2014-06-03 16:02 1095http://stackoverflow.com/questi ... -
通过正则表达式来获取json数值
2014-05-23 11:39 13private String getJsonValue(Str ... -
java找不到或无法加载主类
2014-05-19 13:21 1283用CMD运行java +类名, 居然碰到这个问题。 编译是没有 ... -
Java转义字符笔记 |
2014-01-12 21:01 918数据库有一个关键字列-keyword,里面存放的关键字格式如下 ... -
char和int类型相互转换
2013-12-10 18:43 1376今天看到别人使用一个方法 ->String.indexO ...
相关推荐
本文将深入探讨如何使用Java语言实现计算10000的阶乘,我们将讨论两种不同的方法,每种方法都有其特定的时间复杂度和效率。 ### 方法一:递归计算 递归是最直观的解决阶乘问题的方法。基本思路是定义一个函数,...
在编程领域,递归是一种强大的工具,它允许函数或方法调用自身来解决问题。Java作为面向对象的语言,同样支持递归编程。在这个实例中,我们将深入探讨如何使用Java递归实现阶乘计算,并以1到10的数字为例进行演示。 ...
以下是两种可能的实现方式: **1. 使用循环计算阶乘** ```java public class Factorial { public static long factorial(int n) { long result = 1; for (int i = 1; i ; i++) { result *= i; } return ...
这两种方法都可以实现阶乘计算的多线程化,主要区别在于继承`Thread`时,线程行为直接与类绑定,而实现`Runnable`接口时,线程行为是通过对象实例传递的。选择哪种方式取决于具体需求和设计考虑,例如是否需要复用类...
在Java中,可以通过递归或循环两种方式实现阶乘的计算。递归方法简洁易懂,但可能面临栈溢出的问题;而循环方法虽然稍微复杂一些,但更适用于处理大数计算。理解并能熟练运用这些知识点,对提升编程技能和解决实际...
在本示例中,我们关注的是使用Java编程语言来实现阶乘求和的计算过程。阶乘是一个数学概念,表示一个正整数n的所有小于等于n的正整数的乘积,通常用n!表示。例如,5!(5的阶乘)等于5 * 4 * 3 * 2 * 1 = 120。这个...
给定的Java代码实现了计算1到20的阶乘并累加求和的功能。我们来逐行分析这段代码: 1. **类定义**:`public class ds {` 这里定义了一个名为`ds`的公共类。 2. **主函数**:`public static void main(String[] ...
总结,本例中的Java代码实现了计算五的阶乘的功能,展示了两种不同的计算方法——循环和递归。理解并掌握这些基础知识对于Java程序员来说非常重要,因为它们是编程思维的基础,并在实际项目中频繁出现。
总结,本文介绍了如何使用Java的`BigInteger`类进行大数阶乘的计算,分别展示了递归和迭代两种算法,并讨论了它们的优缺点。在实际编程中,根据问题的具体需求和规模,可以选择合适的算法进行实现。
在Java编程语言中,接口(Interface)是一种定义行为规范的抽象类型,它允许类实现多个接口,从而实现多继承。接口通常用来实现组件之间的解耦,使得代码更加灵活且易于扩展。在这个“java用接口写的1—5累加和阶乘...
Java阶乘应用小程序是一种常见的编程练习,用于帮助初学者理解递归、循环和数学概念在编程中的应用。在这个小程序中,我们将探讨如何使用JAVA来计算一个整数的阶乘,并进一步实现1到20所有整数阶乘的和。下面我们将...
Java语言中实现正整数阶乘的两种方法 Java是一种高级语言,广泛应用于安卓开发、Web开发、桌面应用开发等领域。在数学运算中,阶乘是一个非常重要的概念,它是指一个正整数的连续乘积。例如,5的阶乘是5*4*3*2*1=...
代码使用了AWT库来构建图形用户界面(GUI),这是Java早期用于创建图形界面的一种方法。以下是对代码主要部分的详细解释: 1. 类定义:`Cbkjava` 实现了 `ActionListener` 接口,这意味着该类将处理按钮点击事件。 ...
在Java中,阶乘可以有两种常见的实现方式:递归和循环。 1. **递归实现**: 递归是函数自身调用自身的一种方法。阶乘的递归实现如下: ```java public int factorial(int n) { if (n == 0 || n == 1) { return...
通过具体的代码示例,我们不仅了解了这两种方法的基本原理和实现细节,还学习了如何在实际编程中应用它们。无论是循环还是递归,都有各自的适用场景和优缺点,在选择时应根据具体需求和上下文环境综合考虑。
2. **Recursion.java**:这是一个更通用的递归实现示例,可能包含了多种不同的递归算法,如阶乘计算、汉诺塔、快速排序等。递归在解决这些问题时,通常会将大问题分解为小问题,直到小问题可以直接求解,然后通过...
在Java中实现阶乘算法,我们可以使用递归或循环两种方法。这里我们遵循Java编码规范,使用循环来实现: ```java public class Factorial { // 1. 命名规范:类名首字母大写,驼峰命名 public static long ...
根据提供的文件信息,本文将详细解析“计算阶乘的源代码”,主要涉及的知识点包括:JSP基础概念、HTML与JavaScript结合使用的方式、递归函数实现阶乘计算的方法。 ### JSP基础概念 JSP(JavaServer Pages)是一种...
阶乘的计算可以通过递归或循环两种方式实现。在Java中,使用循环实现阶乘可能更为直观和高效。递归方法会定义一个函数,该函数不断调用自身,直到基本情况(n == 1或n == 0)为止;而循环方法则通过一个for或while...
在Java中实现阶乘的计算,可以为初学者提供基础的编程实践,理解循环和递归等概念。 在给定的"Java 编写的1到10的阶乘和"作业中,我们需要编写一个程序来计算1到10每个整数的阶乘,并将它们相加得到和。这个过程...