我已经用Java编程了一段时间,我决定尝试学习Groovy。我正在经历项目的欧拉问题,而第一个问题我已经注意到了一些奇怪的事情。
class Problem1
{
public static void main(String[] args)
{
def multiple = 1;
for(i in 1..1001)
{
//if it is divisible by three then multiply is
if(i%3 ==0)
{
multiple = multiple * i;
}
if(i%5 ==0)
{
multiple = multiple * i;
}
holder = multiple
}
println(multiple)
}
}
我的多重值设置不正确。一切都在循环内部按预期工作,但是当我尝试打印我的值时,我得到0.它甚至不打印我最初设置变量的1。我不希望这发生在Java中。为什么会在Groovy中发生?我认为groovy应该像Java一样。
答案 0 :(得分:0)
你正在溢出一个整数(就像在Java中一样)
尝试通过更改
来使用BigIntegerdef multiple = 1;
要
def multiple = 1G