C 整数除法与正则除法
我需要将循环中的整数与aC 整数除法与正则除法,c,double,long-integer,sieve,C,Double,Long Integer,Sieve,我需要将循环中的整数与along和along的商进行比较。为了不进行整数除法,如果我理解正确,是否需要将其中一个long转换为double long prime = primes[d]; int i = 1; // "inputNumber / prime" should not be integer division, while it is now. // How do I do this yet still compare it to an "int" afterwards? wh
long
和along
的商进行比较。为了不进行整数除法,如果我理解正确,是否需要将其中一个long转换为double
long prime = primes[d];
int i = 1;
// "inputNumber / prime" should not be integer division, while it is now.
// How do I do this yet still compare it to an "int" afterwards?
while (i < (inputNumber / prime))
{
primes[i*prime] = 0;
i++;
}
因为我担心long*int
对数组索引不起作用
非常感谢 您可以将整数除法的一个操作数乘以
1.0
,以避免结果的整数截断。您可以将整数除法的一个操作数乘以1.0
,以避免结果的整数截断。为什么不将改为((i*prime)
?long
乘以int
得到long
。为什么不,而((i*prime)
?一个long
乘以一个int
得到一个long
。不要太匆忙地接受。。。奥利的答案更好。不要太匆忙地接受。。。奥利的答案更好。不仅如此,因为i*prime
立即被用作索引,所以它不需要重新计算。当然存在溢出问题(但已经存在)。不仅如此,而且由于i*prime
立即被用作索引,因此不必重新计算。当然存在溢出的问题(但已经存在)。
primes[i*prime] = 0;