解题思路:根据给出范围中的数字,调用相关函数依次计算出该数转换为二进制后中所包含1的个数,再返回于主函数进行计算。
解题难点:无;
import java.util.Scanner;
public class Main {
public static void main (String[] args) {
Scanner scanf = new Scanner(System.in);
int L = scanf.nextInt(); //给出数据上下限
int R = scanf.nextInt();
int add = 0;
for(int i = L ; i <= R ;i++) //循环依次调用函数,转成二进制进行运算
add += math(i);
System.out.println(add);
}
static int math(int i) { //math函数,用于十进制转为二进制数之后进行计算
int temp = 0;
int add = 0;
while(i != 0) {
temp = i%2;
i = i/2;
if(temp == 1)
add++;
}
return add;
}
}