计算阶乘的两种实现方式(Java)
本文以计算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)相关推荐
- 全排列两种实现方式(java)—poj2718
前言 以前遇到的全排列,清一色的dfs回溯,自己知道时间复杂度挺高的,最近遇到poj2718认真总结了下全排列. 全排列:给定几个数,要求找出所有的排列方式. 法一:dfs回溯法: 思路:回溯法的核心 ...
- 关键词过滤(脏字过滤)Trie Tree(Hash)和FastCheck两种过滤方式java版本
以前在做关键词或脏字过滤的时候都是使用的TrieTree,后来随便搜索发现了yeerh的这篇文章:http://www.cnblogs.com/yeerh/archive/2011/10/20/221 ...
- 初始化一个java空数组_Java 数组的两种初始化方式
一.数组 1.数组中存储元素的类型是统一的,每一个元素在内存中所占用的空间大小是相同的,知道数组的首元素的内存地址,要查找的元素只要知道下标,就可以快速的计算出偏移量,通过首元素内存地址加上偏移量,就 ...
- Java两种排序方式快慢比较
2019独角兽企业重金招聘Python工程师标准>>> Java中List的排序方式有两种,现在我们测试下这两种排序方式的快慢吧,我们需要用到两个类, 一个是运行程序的Main类,另 ...
- java 同步方式 lock_java的两种同步方式, Synchronized与ReentrantLock的区别
java在编写多线程程序时,为了保证线程安全,需要对数据同步,经常用到两种同步方式就是Synchronized和重入锁ReentrantLock. 相似点: 这两种同步方式有很多相似之处,它们都是加锁 ...
- Java多线程两种实现方式的对比
Java多线程两种实现方式的对比 一种,直接继承Thread类 一种,实现Thread类的Runnable接口 两种方式的区别 比如,售票厅有四个窗口,可以发售某日某次列出的100张车票,此时,100 ...
- Java框架篇---spring aop两种配置方式
Java框架篇---spring aop两种配置方式 第一种:注解配置AOP 注解配置AOP(使用 AspectJ 类库实现的),大致分为三步: 1. 使用注解@Aspect来定义一个切面,在切面中 ...
- java map遍历_Java中Map集合的两种遍历方式
Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...
- java中两种遍历集合的方式_Java中Map集合的两种遍历方式
Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...
- java动态代理两种实现方式
代理顾名思义就是代理别人完成某件任务,比如张三代理李四去交物业费.张三就是代理人,李四就是被代理人. Java代理实现,有静态代理和动态代理,静态代理就是代码在编译成class文件后,就已经有代理类的 ...
最新文章
- 中国LINUX内核开发大会 ppt演讲资料 与 会议视频
- 综合一2017.5.17
- Linux 模拟网络丢包和延迟命令
- sqlmap自动扫描注入点_同天上降魔主,真是人间太岁神——SQLMAP 高级教程
- 【数据竞赛】“达观杯”文本智能处理挑战赛4
- CSS reset 标签初始化设置
- python函数模块讲解_课堂练习讲解_模块化函数封装
- 韩顺平 mysql sqlhelper类_(最全)韩顺平jsp购物车源代码(包含数据库)
- 理论基础 —— 查找 —— 顺序查找
- Of course, Huawei has brought more than just
- adb 操作命令简介(一)
- 虚拟机与ubuntu(二):连接访问
- Tomcat 7.0.94 安装与配置
- heroku常用命令示例(三)与AWS S3互动
- win10导入iphone手机中的照片和视频出错:发生了一些问题,文件可能未导入
- java隐藏手机号中间四位和隐藏邮箱
- 用python处理excel数据做函数_如何使用python通过函数式编程完成excel中的数据处理及分析工作...
- 在 UltraEdit 或 UEStudio 中执行 DOS 或 Windows 命令
- 设计师必备!超好用的MAC电脑网页设计师软件
- 三年初心不改,iQOO如何树立电竞旗舰新标杆?
热门文章
- linux oracle 分号引起大错误
- 清除1188.com
- c++ 类全局变量_static在C和C++中的用法总结
- 网页加载出现没有合适的负载均衡器_一篇文章彻底了解清楚什么是负载均衡
- difference between a Tensor and a Variable
- pip慢?半分钟解决方案
- umpy知识点补充:np.vstack()np.hstack()
- 内核sk_buff工作线程总结
- 惠普暗影精灵3清灰_惠普暗影精灵15评测:速度超快,价格适中|但问题却不少...
- QT造类器(操作简单)