【源码】蓝桥杯-二进制数数 [复制链接]
【作者】Shawna 2019年12月19日 19:59:09
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // write your code here

        Scanner scanner = new Scanner(System.in);

        int mix = scanner.nextInt();
        int max = scanner.nextInt();

        int a = 0;
        for (int i = mix; i <= max; i++) {
            String temp = Integer.toBinaryString(i);
            int fromIndex = 0;
            int count = 0;
            while (true) {
                int index = temp.indexOf("1", fromIndex);
                if (-1 != index) {
                    fromIndex = index + 1;
                    count++;
                } else {
                    break;
                }
            }
            a = a + count;
        }
        System.out.println(a);
    }
}

问题描述

  给定L,R。统计[L,R]区间内的所有数在二进制下包含的“1”的个数之和。
  如5的二进制为101,包含2个“1”。

输入格式

  第一行包含2个数L,R

输出格式

  一个数S,表示[L,R]区间内的所有数在二进制下包含的“1”的个数之和。

样例输入

2 3

样例输出

3

数据规模和约定

  L<=R<=100000;