java竞赛-大数阶乘问题
来源:互联网 发布:java环境配置 编辑:程序博客网 时间:2024/06/07 01:49
Java计算阶乘(n!)需要使用实现使用BigDecimal类,因为用int最多正确算到12!,用long最多正确算到20!
计算机中提供了长整型和双精度等能存储较大数的数据类型,但在有些时候,这样的数据类型不能满足实际应用的需求,比如大数的阶乘。请编写程序,实现大数阶乘的算法。要求能计算N(6<=N<=300)的阶乘。
计算机中提供了长整型和双精度等能存储较大数的数据类型,但在有些时候,这样的数据类型不能满足实际应用的需求,比如大数的阶乘。请编写程序,实现大数阶乘的算法。要求能计算N(6<=N<=300)的阶乘。
import java.math.BigDecimal; import java.util.Scanner; /** * @author LucasXu * @date 2015 11 26 * @content Java计算阶乘(n!)需要使用实现使用BigDecimal类,因为用int最多正确算到12!,用long最多正确算到20! * 计算机中提供了长整型和双精度等能存储较大数的数据类型,但在有些时候,这样的数据类型不能满足实际应用的需求, * 比如大数的阶乘。请编写程序,实现大数阶乘的算法。要求能计算N(6<=N<=300)的阶乘。 */public class dashujiecheng { public static BigDecimal factorial(BigDecimal n){ BigDecimal bd1 = new BigDecimal(1);//BigDecimal类型的1 BigDecimal bd2 = new BigDecimal(2);//BigDecimal类型的2 BigDecimal result = bd1;//结果集,初值取1 while(n.compareTo(bd1) > 0){//参数大于1,进入循环 result = result.multiply(n.multiply(n.subtract(bd1)));//实现result*(n*(n-1)) n = n.subtract(bd2);//n-2后继续 } return result; } public static void main(String[] arguments){ System.out.println("请输入阶乘数:");Scanner sc = new Scanner(System.in); BigDecimal n = sc.nextBigDecimal(); sc.close();System.out.print(n + "!=" + factorial(n)); } }
0 1
- java竞赛-大数阶乘问题
- 【大数问题】大数阶乘
- 大数阶乘问题
- 大数阶乘问题
- 大数阶乘问题研究
- 阶乘,大数问题
- 大数阶乘问题
- 大数阶乘问题
- 大数阶乘问题
- ACM大数阶乘问题
- NYOJ 大数阶乘问题
- 大数的阶乘问题
- 大数阶乘问题
- 大数阶乘问题
- 1063 JAVA大数阶乘
- 大数阶乘Java实现
- 大数阶乘Java
- JAVA大数阶乘
- int与float在内存中的存储形式_对比与转换
- SSL/TLS 协议详解
- 编程珠玑 第三部分 应用
- HTML5基础--新特性
- 忘记mysq rootl密码后解决办法
- java竞赛-大数阶乘问题
- C/C++检测进程是否被调试
- edX-Cypress OVA导入后个性定制
- HTML5基础--开发工具
- C-050.条件编译
- EL表达式---关系运算符
- NYOJ-33-蛇形填数
- MXNet安装教程
- 【后缀数组系列】二、后缀数组的两种求法