【发布时间】:2016-07-15 07:22:14
【问题描述】:
10^18 阶的输入 n 和输出应该是设置位仅为 2 的所有数字的总和。例如n = 5 设置位是 101--> 2 设置位。对于 n = 1234567865432784,如何优化下面的代码?
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;
}
}
【问题讨论】:
-
您是否只是编辑了您提出的问题以使其成为一个完全不同的问题?
-
我先输入了一个错误的问题,Leo,请帮我解决这个问题。
-
我需要快速 IO 技术方面的帮助来读取大输入和打印大输出。在这方面也需要帮助。