我正在编写一些代码来解决Project Euler上的问题,而且像往常一样,我必须遍历一系列数字。但是,部分游戏尽可能高效。我们以此代码为例:
for (int i = 1; i < Math.pow(10,6);i++){
//code goes here
}
对于每次迭代,Java都会重新计算10 ^ 6吗?换句话说,这是否更有效?
for (int i = 1; i < 1000000;i++){
//code goes here
}
答案 0 :(得分:1)
好吧,试试吧:
for (int i=0;i<1000000;i++)
5046949
5314307
4619485
5045923
4397800
使用方法调用:
for (int i=0;i<Math.pow(10,6);i++)
221661393
222532742
239673896
216985460
221952869
嗯,所以Java每次都会重新计算方法。数字,因为它没有办法告诉该方法将随时间返回相同的值。
你也可以这样做:
for (int i=0;i<(int)1e6;i++)
4329548
4781644
4614867
4508642
4508642