问题描述:
给定L,R。统计[L,R]区间内的所有数在二进制下包含的"1"的个数之和。如5的二进制位101,包含2个"1"。
输入格式:
第一行包含2个数L,R。
输出格式:
一个数S,表示[L,R]区间内的所有数在二进制下包含的"1"的个数之和。
样例输入:
2 3
样例输出:
3
数据规模和约定:
L<=R<=100000;
思路:本题由于是要统计1的个数,那么采取数组存储二进制数的每一位比较好,也就是需要一步一步的统计0和1,因此需要灵活变换一下十进制转二进制的方法。然后再遍历统计好的数组找1即可。
代码:
#include<stdio.h>
int x,i,j,t,k,count;//转换函数里用的到,定义在外边
int a[20];//由于用的是把二进制数分为一个个的0或1,所以定义数组存储
void change</