本文以计算5的阶乘为例:5! =5*4*3*2*1=120

一、循环阶乘

1、While循环

public class TestWhileFactorial{public static void main(String[] args){int result=factorial(5);System.out.println("5! ="+result);}public static int factorial(int n){int s=1;int i=1;while(i<=n){s*=i;i++;
}return s;}}

2、For循环

public class TestForFactorial{public static void main(String[] args){int result=factorial(5);System.out.println("5! ="+result);}public static int factorial(int n){    //定义一个factorial方法int s=1;if(int i=2;i<=n;i++){s*=i;}return s;}}

二、递归阶乘

public class Testfactorial{public static void main(String[] args){int result=factorial(5);System.out.println("5! ="+result);}public static int factorial(int n){if(n==1){return 1;    //增加出口条件,当n=1时,无需计算阶乘,直接返回结果1.}int s=n*factorial(n-1);return s;    }}

注意:所有能以递归解决的问题,循环都可以解决。当解决复杂问题时,递归的实现方式更为简单。

计算阶乘的两种实现方式(Java)相关推荐

  1. 全排列两种实现方式(java)—poj2718

    前言 以前遇到的全排列,清一色的dfs回溯,自己知道时间复杂度挺高的,最近遇到poj2718认真总结了下全排列. 全排列:给定几个数,要求找出所有的排列方式. 法一:dfs回溯法: 思路:回溯法的核心 ...

  2. 关键词过滤(脏字过滤)Trie Tree(Hash)和FastCheck两种过滤方式java版本

    以前在做关键词或脏字过滤的时候都是使用的TrieTree,后来随便搜索发现了yeerh的这篇文章:http://www.cnblogs.com/yeerh/archive/2011/10/20/221 ...

  3. 初始化一个java空数组_Java 数组的两种初始化方式

    一.数组 1.数组中存储元素的类型是统一的,每一个元素在内存中所占用的空间大小是相同的,知道数组的首元素的内存地址,要查找的元素只要知道下标,就可以快速的计算出偏移量,通过首元素内存地址加上偏移量,就 ...

  4. Java两种排序方式快慢比较

    2019独角兽企业重金招聘Python工程师标准>>> Java中List的排序方式有两种,现在我们测试下这两种排序方式的快慢吧,我们需要用到两个类, 一个是运行程序的Main类,另 ...

  5. java 同步方式 lock_java的两种同步方式, Synchronized与ReentrantLock的区别

    java在编写多线程程序时,为了保证线程安全,需要对数据同步,经常用到两种同步方式就是Synchronized和重入锁ReentrantLock. 相似点: 这两种同步方式有很多相似之处,它们都是加锁 ...

  6. Java多线程两种实现方式的对比

    Java多线程两种实现方式的对比 一种,直接继承Thread类 一种,实现Thread类的Runnable接口 两种方式的区别 比如,售票厅有四个窗口,可以发售某日某次列出的100张车票,此时,100 ...

  7. Java框架篇---spring aop两种配置方式

    Java框架篇---spring aop两种配置方式 第一种:注解配置AOP 注解配置AOP(使用 AspectJ 类库实现的),大致分为三步:  1. 使用注解@Aspect来定义一个切面,在切面中 ...

  8. java map遍历_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  9. java中两种遍历集合的方式_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  10. java动态代理两种实现方式

    代理顾名思义就是代理别人完成某件任务,比如张三代理李四去交物业费.张三就是代理人,李四就是被代理人. Java代理实现,有静态代理和动态代理,静态代理就是代码在编译成class文件后,就已经有代理类的 ...

最新文章

  1. 中国LINUX内核开发大会 ppt演讲资料 与 会议视频
  2. 综合一2017.5.17
  3. Linux 模拟网络丢包和延迟命令
  4. sqlmap自动扫描注入点_同天上降魔主,真是人间太岁神——SQLMAP 高级教程
  5. 【数据竞赛】“达观杯”文本智能处理挑战赛4
  6. CSS reset 标签初始化设置
  7. python函数模块讲解_课堂练习讲解_模块化函数封装
  8. 韩顺平 mysql sqlhelper类_(最全)韩顺平jsp购物车源代码(包含数据库)
  9. 理论基础 —— 查找 —— 顺序查找
  10. Of course, Huawei has brought more than just
  11. adb 操作命令简介(一)
  12. 虚拟机与ubuntu(二):连接访问
  13. Tomcat 7.0.94 安装与配置
  14. heroku常用命令示例(三)与AWS S3互动
  15. win10导入iphone手机中的照片和视频出错:发生了一些问题,文件可能未导入
  16. java隐藏手机号中间四位和隐藏邮箱
  17. 用python处理excel数据做函数_如何使用python通过函数式编程完成excel中的数据处理及分析工作...
  18. 在 UltraEdit 或 UEStudio 中执行 DOS 或 Windows 命令
  19. 设计师必备!超好用的MAC电脑网页设计师软件
  20. 三年初心不改,iQOO如何树立电竞旗舰新标杆?

热门文章

  1. linux oracle 分号引起大错误
  2. 清除1188.com
  3. c++ 类全局变量_static在C和C++中的用法总结
  4. 网页加载出现没有合适的负载均衡器_一篇文章彻底了解清楚什么是负载均衡
  5. difference between a Tensor and a Variable
  6. pip慢?半分钟解决方案
  7. umpy知识点补充:np.vstack()np.hstack()
  8. 内核sk_buff工作线程总结
  9. 惠普暗影精灵3清灰_惠普暗影精灵15评测:速度超快,价格适中|但问题却不少...
  10. QT造类器(操作简单)