当前位置: 首页 > 面试题库 >

在Java中查找大数阶乘

吴欣悦
2023-03-14
问题内容

我尝试使用for循环和double数据类型以典型方式找到大量的阶乘,例如8785856。

但是结果显示无限大,可能是因为它超出了其极限。

因此,请引导我找到大量乘数的方法

我的代码:

class abc
{
    public static void main (String[]args)
    {
        double fact=1;
        for(int i=1;i<=8785856;i++)
        {
            fact=fact*i;
        }

        System.out.println(fact);
    }
}

输出:-

Infinity

我是Java的新手,但已经学习了IO处理的所有概念。


问题答案:
public static void main(String[] args) {
    BigInteger fact = BigInteger.valueOf(1);
    for (int i = 1; i <= 8785856; i++)
        fact = fact.multiply(BigInteger.valueOf(i));
    System.out.println(fact);
}


 类似资料:
  • 我需要计算特定数字的计数(介于0之间 这适用于小数字输入:7 0输出:2描述:7!=5040有两个零,但对于大数字需要很长时间输入:

  • 一些被测试的数字将导致10000位的阶乘,因此计算这一数字以找到尾随的零似乎是不可能的。如何在不计算阶乘的情况下找到尾随零的数量。

  • 问题内容: 给定一个未排序的数组,您需要找到数组中o(n) 时间复杂度第二大的元素。 例如: 问题答案: 您可以对数组进行排序,然后返回数组中的倒数第二个元素,但这将在 o ( nlogn ) 时间内完成, 算法: 用最小可能值初始化最高和第二最高。 迭代数组。 如果当前元素大于最高 分配 secondHighest = 最高 分配最高 = currentElement 否则如果当前元素大于 se

  • 问题内容: 我只是在练习一些MIT Java作业。但是,我不确定如何找到第二大数字。http://ocw.csail.mit.edu/f/13 问题答案: 仅对数组进行排序以查找订单统计信息太浪费了。您可以通过遵循与现有算法相似的算法找到第二大元素,并使用一个代表第二大数字的附加变量。 当前,下一个元素可以大于最大值或等于/小于最大值,因此单个元素就足够了: 考虑两个变量,下一个元素可能是 大于最

  • 问题内容: 我正在尝试使用蒙特卡洛算法查找下周的乐透数字包含连续数字的概率。我认为对数字进行排序可能会使实际查找连续项更加容易,但是在网上搜索了很多之后,似乎并没有什么真正可以帮助我寻找所需内容的信息 到目前为止,这就是我所知道的,我知道我将使用计数器来查找百万结果中的连续数,但实际上我只是为如何真正找到连续数而烦恼 问题答案: 首先我读错了问题,对不起,答案很抱歉! 好吧,让我们分手吧。那么首先

  • 问题内容: 如何从Java代码中找到应用程序可用的内核数量? 问题答案: 如果小于1,则说明您的处理器即将死机,或者JVM中存在严重的错误,或者Universe即将崩溃。