21xrx.com
2024-04-18 21:03:04 Thursday
登录
文章检索 我的文章 写文章
Java 中的阶乘程序
2021-07-08 17:34:30 深夜i     --     --
J a v a

Java 程序查找一个数的阶乘,如果该数为负数,则打印错误消息。 您还可以使用递归找到阶乘。 第一个程序使用整数数据类型,因此它只能计算小数的阶乘。 使用 BigInteger 的大数阶乘。

 

Java中数字的因数

import java.util.Scanner;


class Factorial
{
  public static void main(String args[])
  {
    int n, c, f = 1;

    System.out.println("Enter an integer to calculate its factorial");
    Scanner in = new Scanner(System.in);

    n = in.nextInt();

    if (n < 0)
      System.out.println("Number should be non-negative.");
    else
    {
      for (c = 1; c <= n; c++)
        f = f*c;

      System.out.println("Factorial of "+n+" is = "+f);
    }
  }
}

 

程序输出:

下载阶乘程序类文件。

计算大数阶乘的Java程序

上面的程序没有给出计算 20 的阶乘的正确结果。因为 20! 是一个很大的数字,不能以整数数据类型存储,它是 4 个字节。 要计算百的阶乘,我们使用 java.math 包的 BigInteger 类。

import java.util.Scanner;
import java.math.BigInteger;


class Factorial
{
  public static void main(String args[])
  {
    int n, c;

    BigInteger i = new BigInteger("1");
    BigInteger f = new BigInteger("1");

    Scanner input = new Scanner(System.in);

    System.out.println("Input an integer");
    n = input.nextInt();

    for (c = 1; c <= n; c++) {
      f = f.multiply(i);
      i = i.add(BigInteger.ONE);
    }

    System.out.println(n + "! = " + f);
  }
}

下载 Big Factor 类文件。

我们运行程序来计算 100 阶乘。

Input an integer
100
100! = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复