阶乘的计算java_java中四种阶乘的计算
package com.zf.s2;//创建一个包
import java.math.BigInteger;//导入类
import java.util.ArrayList;
import java.util.List;
public class TextFactorial {//操作计算阶乘的类
public static int simpleCircle(int num){//简单的循环计算的阶乘
int sum=1;
if(num<0){//判断传入数是否为负数
throw new IllegalArgumentException("必须为正整数!");//抛出不合理参数异常
}
for(int i=1;i<=num;i++){//循环num
sum *= i;//每循环一次进行乘法运算
}
return sum;//返回阶乘的值
}
public static int recursion(int num){//利用递归计算阶乘
int sum=1;
if(num < 0)
throw new IllegalArgumentException("必须为正整数!");//抛出不合理参数异常
if(num==1){
return 1;//根据条件,跳出循环
}else{
sum=num * recursion(num-1);//运用递归计算
return sum;
}
}
public static long addArray(int num){//数组添加计算阶乘
long[]arr=new long[21];//创建数组
arr[0]=1;
int last=0;
if(num>=arr.length){
throw new IllegalArgumentException("传入的值太大");//抛出传入的数太大异常
}
if(num < 0)
throw new IllegalArgumentException("必须为正整数!");//抛出不合理参数异常
while(last
arr[last+1]=arr[last]*(last+1);//进行运算
last++;//last先进行运算,再将last的值加1
}
return arr[num];
}
public static synchronized BigInteger bigNumber(int num){//利用BigInteger类计算阶乘
ArrayList list = new ArrayList();//创建集合数组
list.add(BigInteger.valueOf(1));//往数组里添加一个数值
for (int i = list.size(); i <= num; i++) {
BigInteger lastfact = (BigInteger) list.get(i - 1);//获得第一个元素
BigInteger nextfact = lastfact.multiply(BigInteger.valueOf(i));//获得下一个数组
list.add(nextfact);
}
return (BigInteger) list.get(num);//返回数组中的下标为num的值
}
public static void main(String []args){//java程序的主入口处
int num=5;
int num1=23;
System.out.println("简单的循环计算"+num+"的阶乘为"//调用simpleCircle
+simpleCircle(num));
System.out.println("利用递归计算"+num+"的阶乘为"//调用recursion
+recursion(num));
System.out.println("数组添加计算"+num+"的阶乘为"//调用addArray
+addArray(num));
System.out.println("利用BigInteger类计算"+num1+"的阶乘为"//调用bigNumber
+bigNumber(num1));
}
}
阶乘的计算java_java中四种阶乘的计算相关推荐
- 电子计算机机房折旧提几年,IDC设备资产运营中四种“折旧率计算”的常见方法...
原标题:IDC设备资产运营中四种"折旧率计算"的常见方法 数据中心基础设施设备管理中设备的折旧是固定资产的折旧.该基础设施设备或者IT设备在长期使用后仍可保持其原始物理形态,但由于 ...
- Java中四种XML解析技术之不完全测试
Java中四种XML解析技术之不完全测试 <script language=javascript src=""></script> 在平时工作中,难免会遇到 ...
- 并行:四种C+OpenMP计算π的并行程序
四种C+OpenMP计算π的并行程序 VS2017中OpenMP配置 计算π的串行程序 计算π的并行程序 1.并行域并行化 2.共享任务结构并行化 3.private字句和critical制导语句并行 ...
- 【算法】计算组合数的四种常用方法
[算法]计算组合数的四种常用方法 算法一:Cab=Ca−1b−1+Ca−1bC_{a}^{b}=C_{a-1}^{b-1}+C_{a-1}^{b}Cab=Ca−1b−1+Ca−1b 解析: Ca ...
- Android中四种补间动画的使用示例(附代码下载)
场景 Android中四种补间动画. 透明度渐变动画 旋转动画 缩放动画 平移动画 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的 ...
- JavaScript中四种不同的属性检测方式比较
JavaScript中四种不同的属性检测方式比较 1. 用in方法 var o = {x:1}; "x" in o; //true "y" in o; //fa ...
- C++中四种 cast 转换
四种 cast 转换 C++中四种类型转换是:static_cast, dynamic_cast, const_cast, reinterpret_cast const_cast static_cas ...
- java乘法表_Java中四种9*9乘法表的实现方式(附代码)
前言: 初学java,实现99乘法表是必学必会的内容. 需求 : 分别写出上下左右,对应四个角的乘法表. 思路: 可以先打印出*星星,形成一个直角三角形,然后再替换成乘法公式. 代码如下: publi ...
- java中四种操作(DOM、SAX、JDOM、DOM4J)xml方式详解与比较(转)
java中四种操作(DOM.SAX.JDOM.DOM4J)xml方式详解与比较(转) http://wishlife.javaeye.com/blog/181865 posted on 2010-12 ...
最新文章
- 第二十二讲 延迟定理
- 01.query的分类-条件查询和组合查询
- 汇编的艺术(01)sizeof operator
- T-1-java语言基础
- php中join用法,PHP join()函数用法与实例讲解
- 【SpringCloud】Spring cloud Alibaba Sentinel 规则持久化
- 3dmax导出obj序列_Houdini导出序列图片
- linux 脚本做成服务,Shell脚本注册到Linux系统服务实例
- 利用VX助手增加编程效率
- TimesTen数据库使用之点滴(1)
- chrome浏览器控制台执行js脚本
- 罗马数字转化为阿拉伯数字
- WIN10家庭版虚拟机启动蓝屏问题
- 使用svn报错之An error occurred while contacting the repository
- 用MySQL模拟消息队列
- 内存延时cl_内存频率和CL延迟哪个重要[解答]
- Vscode开发STM32单片机程序
- 新手怎么重装系统?只需3步看完小白也会装!
- 诺贝尔奖大数据告诉你:最聪明的星座是谁
- ocp考题解析create user
热门文章
- 用MATLAB编程正弦稳态相量图,matlab课程设计--利用MATLAB对线性电路正弦稳态特性分析...
- R语言多层桑基图_桑基图的绘制核心微生物组分类学及丰度展示
- 三相pmsm矢量控制仿真模型_学术|基于新型滑模观测器的永磁同步电机无传感器矢量控制系统...
- console修改 ajax,【快速】chrome中console下ajax访问后台
- 用shell获取mysql主从状态_shell监控MySQL主从状态脚本两则
- linux定时器回调处理过程,Linux内核系统定时器TIMER实现过程分析
- python字符串基本操作-Python 基本字符串操作
- 做程序员如何防止被裁员?我们既要干好主业,也要发展好副业,跟这些公众号大佬们向上生长...
- 讲真,做Python一定不要只会一个方向!
- 机器手六维坐标怎么定义_工业机器人十万个怎么办-不清楚机器人各坐标系含义怎么办?...