java中可以求10000的阶乘吗?

问题描述 投票:0回答:2

java中可以求10000的阶乘吗? 我已经完成了使用 BigInteger 查找 1000 的阶乘的程序,但是当我尝试查找 10000 的阶乘时,我没有得到输出。

class Factorial{
    public static void main(String[] args) {
        Factorial fact= new Factorial();


        fact= getFactorialOf(10000);

    }

    void getFactorialOf(long n) {
        BigInteger result = BigInteger.ONE;
        for (int i = 2; i <= n; i++)
            result = result.multiply(BigInteger.valueOf(i));
        System.out.println(result);

    }

这是我的完整代码。

java
2个回答
2
投票

是的,这是可能的。根据this参考,10000阶乘有35,659十进制数字(但他们计数错误,实际上有35,660个十进制数字)......但这完全在

BigInteger
的能力范围内。

这表明您的问题要么是您的代码中有错误,要么是您不耐烦。


0
投票
import java.math.BigInteger;

import java.util.Scanner;

public class UniqueFact {
     public static void main(String[] args) {
       Scanner s = new Scanner(System.in);
       System.out.print("Enter a number: ");
       int n = s.nextInt();
       String fact = factorial(n);
       System.out.println("Factorial is " + fact);
   }

   public static String factorial(int n) {
       BigInteger fact = new BigInteger("1");
       for (int i = 1; i <= n; i++) {
           fact = fact.multiply(new BigInteger(i + ""));
       }
       return fact.toString();
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.