输入N,计算1到N之间的每个数字最大奇约数之和;
如F(5)=F(1)+F(2)+F(3)+F(4)+F(5)=1+1+3+1+5=11;
输入N范围 [1,100000000] ,要求时间在1s之内,空间在32MB之内;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNextInt())
{
long n = scanner.nextInt();
long sum = 0;
long count = 0;
for(int i=1;i<=n;i+=2){
for(int j=i;j<=n;j*=2){
count++;
}
sum+=(count*i);
count = 0;
}
System.out.println(sum);
}
}
}