• PUDN用户
    了解作者
  • Java
    开发工具
  • 1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 4
    下载次数
  • 2009-11-21 13:49
    上传日期
该程序借助Java实现了任意大小的实数的乘法,可对任意大小的实数进行加减乘除运算。该算法速度快,且没有错误.这里以计算100的阶乘作为示例,来演示算法的高效及正确性。该算法已经优化,可以在一秒钟以内计算出100以内的阶乘。
Factorial.rar
  • Factorial.java
    1.3KB
内容介绍
/* * * 该程序借助Java实现了任意大小的实数的乘法, * 可对任意大小的实数进行加减乘除运算。 * 该算法速度快,且没有错误. * 这里以计算100的阶乘作为示例,来演示算法的高效及正确性。 * 该算法已经优化,可以在一秒钟以内计算出100以内的阶乘。 * */ import java.math.BigInteger; import java.util.*; /** * 这里使用ArrayList来保存已经计算过的阶乘值, * 这样可以提高算法效率,重用以前的阶乘来计算下一阶乘。 **/ public class Factorial { protected static ArrayList<BigInteger> table = new ArrayList<BigInteger>(); //存储已经计算的阶乘 static { // 初始化第一个阶乘: !0 = 1. table.add(BigInteger.valueOf(1)); } /** 函数 factorial() 使用保存在 table 中的已经计算过的阶乘来计算下一个阶乘值*/ public static synchronized BigInteger factorial(int x) { if (x<0) throw new IllegalArgumentException("x must be non-negative."); for(int size = table.size(); size <= x; size++) { BigInteger lastfact = (BigInteger)table.get(size-1); BigInteger nextfact = lastfact.multiply(BigInteger.valueOf(size)); table.add(nextfact); } return (BigInteger) table.get(x); } /** * 程序入口 **/ public static void main(String[] args) { for(int i = 0; i <= 100; i++) System.out.println(i + "! = " + factorial(i)); } }
评论
    相关推荐
    • Programar06.rar
      revista programar volume 6
    • 01.08.rar
      Optimization of Passive Suspension System for Enhancement of Ride Comfort
    • 01.08.rar
      Optimization of Passive Suspension System for Enhancement of Ride Comfort
    • tampio:Tampio:一种类似于芬兰语的面向对象的编程语言
      Tampio编程语言 Tampio是一种面向对象的编程语言,看起来像一种自然语言-芬兰语。 它以著名的芬兰程序员的名字命名。 要查看实际使用的语言,请参见。 (由于技术原因,它被命名为“ ristiruutu”而不是“ ...
    • java-wonders:此存储库包含您都可以使用java进行的所有高级操作
      Java奇迹 什么是Java? 本质上,Java是两件事。 首先,Java可能是一个编程和计算平台。 Sun Microsystems于1995年首次发布了它。如今,它已被广泛用于各种网站中。 实际上,除非安装了Java,否则许多应用... 例如,Ja
    • leetcode2-LeetCode-[removed]解决JavaScript中的LeetCode问题。LeetCode的Ja
      leetcode 2 JavaScript 中的 LeetCode 解决方案 尝试尽可能多地使用最佳解决方案。 大多数解决方案来自 LeetCode 社区。 写的很有风格。...如果您发现问题或复杂性不好,非常欢迎您贡献您更好的解决方案。...——
    • matlabcnhelp.rar
      matlab中文帮助很难找的,快速下载
    • MobilePolice.rar
      移动警察,车牌识别,车牌定位系统源代码,已经运用在移动车载稽查系统中。
    • SVM(matlab).rar
      支持向量机(SVM)实现的分类算法源码[matlab]
    • svm.zip
      用MATLAB编写的svm源程序,可以实现支持向量机,用于特征分类或提取