订单10^18的输入n和输出应该是其设定位仅为2的所有数字的总和。对于例如n = 5个setbit是101-> 2个设定位。对于n = 1234567865432784,我如何优化下面的代码?Java中的大型优化IO处理
class TestClass
{
public static void main(String args[])
{
long N,s=0L;
Scanner sc = new Scanner(System.in);
N=sc.nextLong();
for(long j = 1; j<=N; j++)
{
long b = j;
int count = 0;
while(b!=0)
{
b = b & (b-1);
count++;
}
if(count == 2)
{
s+=j;
count = 0;
}
else
{
count = 0;
continue;
}
}
System.out.println(s%1000000007);
s=0L;
}
}
[看看这个(HTTPS:/ /en.wikipedia.org/wiki/Sieve_of_Eratosthenes) – SMA
你刚刚编辑了你问的问题,使它成为一个完全不同的问题? –
我首先输入了一个错误的问题Leo,请帮助我解决这个问题。 – sagnikDas