gpt4 book ai didi

java - 处理100!在 Java/Groovy 中

转载 作者:行者123 更新时间:2023-11-29 03:17:25 26 4
gpt4 key购买 nike

我知道 BigInteger 是处理非常大的数字时要使用的类。我写了一个简单的脚本来计算阶乘。但是,它在输入 25 及以上时中断。

/**
* Calculates the factorial of a given number
*/
BigInteger fact(long n){
def fact = 1
while(n > 0){
fact *= n--
}
return fact
}

处理大到 100 的数字的正确方法是什么!

最佳答案

只需将 fact 声明为带有 Groovy 的 G 后缀的 BigInteger:

BigInteger fact(long n){
def fact = 1G
while(n > 0){
fact *= n--
}
return fact
}

assert fact(30) == 265252859812191058636308480000000
assert fact(25) == 15511210043330985984000000
assert fact(100) == 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

关于java - 处理100!在 Java/Groovy 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25713464/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com