【转】Java编程实例:计算阶乘的四个例子

本文介绍了四种不同的阶乘计算方法:使用循环、递归、数组和BigInteger类。这些方法覆盖了从小到大的不同输入范围,并展示了不同的编程技巧。

这是利用简单的循环相乘制造的阶乘。


     public class Factorial {
  public static int factorial(int x) {
  if (x < 0) {
  throw new IllegalArgumentException("x must be>=0");
  }
  int fact = 1;
  for (int i = 2; i <= x; i++) {
  fact *= i;
  }
  return fact;
  }
  public static void main(String args[]) {
  System.out.print(factorial(10));
  }
  }

  这个是利用递归算法制成的。


 public class factorial2 {
  public static int factorial2(int x) {
  if (x < 0) {
  throw new IllegalArgumentException("x must be>=0");
  }
  if (x <= 1) {
  return 1;
  } else
  return x * factorial2(x - 1);
  }
  public static void main(String args[]) {
  System.out.print(factorial2(10));
  }
  }

  这个是数组添加的方法制成的,可以计算更大的阶乘。


public class Factorial3 {
  static long[] table = new long[21];
  static {table[0] = 1; }
  static int last = 0;
  public static long factorial(int x) throws IllegalArgumentException {
  if (x >= table.length) {
  throw new IllegalArgumentException("Overflow; x is too large.");
  }
  if (x <= 0) {
  throw new IllegalArgumentException("x must be non-negative.");
  }
  while (last < x) {
  table[last + 1] = table[last] * (last + 1);
  last++;
  }
  return table[x];
  }
  public static void main(String[] args) {
  System.out.print(factorial(17));
  }
  }

  最后一个是利用BigInteger类制成的,这里可以用更大的更大的阶乘。

  


      import java.math.BigInteger;
  import java.util.*;
  public class Factorial4{
  protected static ArrayList table = new ArrayList();
  static{ table.add(BigInteger.valueOf(1));}
  public static synchronized BigInteger factorial(int x){
  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) {
  System.out.print(factorial(17));
  }
  }
该工具支持多个型号,包括但不限于idata95w、idata95v以及iData95等。它是一种pda刷机软件,即个人数字助理(Personal Digital Assistant)设备的固件升级程序。刷机通常指的是将设备的固件或者操作系统进行更新或替换的过程,可以用来修复系统问题、提升设备性能或更新新功能。刷机工具的操作过程通常包括连接设备到电脑、选择正确的固件版本、执行刷机程序以及等待过程完成。在进行刷机之前,用户需要确保下载的刷机工具版本与自己的设备型号相匹配,并严格遵循操作说明,以避免刷机失败导致设备变砖(即设备无法启动)。在压缩包文件列表中仅提到了"A5V2R2刷机工具",这可能表明该工具是为特定版本的idata95系列产品设计的。可能是指固件的版本号,比如A5V2R2可能代表某个版本的固件,其中A5可能表示版本类型,V2表示版本号,R2可能表示修订级别。刷机工具有时还包含有解锁Bootloader(引导程序)的功能,这在某些设备中是进行刷机前的必要步骤。Bootloader是设备启动时首先运行的一段代码,负责加载操作系统。在一些设备上,Bootloader被锁定,以防止非授权的系统更改。解锁Bootloader可能会清除设备上的所有数据,因此这个过程需要谨慎操作。刷机工具的使用通常涉及以下步骤:1. 准备工作:备份好设备上的个人数据,确保数据安全。2. 下载对应的刷机工具:根据设备型号下载相应的刷机工具,确保来源的安全可靠。3. 启动设备至下载模式:这通常需要在设备关闭状态下同时按住特定的几个按键来进入。4. 连接设备到电脑:使用USB数据线将设备连接到电脑。5. 运行刷机工具:打开刷机工具软件,通常会有一个简单的用户界面指导用户完成刷机过程。6. 执行刷机程序:根据软件指示选择相应的固件文件,然后软件会自动完成刷机过程。7. 刷机后处理:刷机完成后,通常需要手动启动设备或进行额外的配置以确保设备正常运行。刷机不仅在技术上有一定风险,而且可能会使设备的保修失效。因此,如果没有足够的经验或者不确定是否需要刷机,建议不要轻易尝试。此外,刷机也可能导致设备的某些功能无法使用或不稳定,所以在进行刷机之前应该进行充分的了解准备。"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值