0

ループ内の整数をalongとaの商と比較する必要がありlongます。整数除算を行わないために、私が正しく理解している場合、longの1つを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++;
}

これがコードスニペットです。primesはsで満たされた配列longです。ところで、このコードは正しいです:

primes[i*prime] = 0;

long * int配列インデックスではが機能しないのではないかと心配しているからです。

本当にありがとう!

4

2 に答える 2

3

while((i * prime) < inputNumber)代わりになぜですか?結果をlong掛けると...intlong

于 2012-06-30T21:57:02.837 に答える
1

1.0結果の整数の切り捨てを回避するために、整数除算のオペランドの1つにを掛けることができます。

于 2012-06-30T21:55:53.937 に答える