大数阶乘

type
status
date
slug
summary
tags
category
icon
password
由于溢出,使用原始int数据类型无法找到大于或等于13的数字的阶乘太大而int变量无法容纳,其最大值仅为2147483647(2 ^ 31 -1)。即使我们使用long数据类型,大于或等于21的阶乘也会产生溢出。要计算大于21的阶乘,需要使用java.math包中的BigInteger类。顾名思义,BigInteger类旨在容纳非常大的整数值,该值甚至大于长整型数的最大值,例如2 ^ 63 -19223372036854775807L。但不能使用递归来计算较大数量的阶乘,而是需要为此使用for循环。
还值得注意的是,类似于java.lang.String和其他包装器类, BigInteger在Java中也是不可变的,这意味着将结果存储回相同的变量很重要,否则,计算结果将会丢失。BigInteger将数字存储为2的补数。此外,它还支持模块化算术,位操作,素数测试,素数生成,GCD计算和其他其他操作。

实现

Loading...

© ShellMing 2019-2025