title: ‘算法训练-二进制数数’date: 2020-03-11 21:18:21
tags: [蓝桥杯]
published: true
hideInList: false
feature:
isTop: false
/*试题 算法训练 二进制数数资源限制时间限制:1.0s 内存限制:256.0MB问题描述 给定L,R。统计[L,R]区间内的所有数在二进制下包含的“1”的个数之和。 如5的二进制为101,包含2个“1”。输入格式 第一行包含2个数L,R输出格式 一个数S,表示[L,R]区间内的所有数在二进制下包含的“1”的个数之和。样例输入2 3样例输出3数据规模和约定 L<=R<=100000;*/#include <algorithm>#include <cstdio>#include <cstring>int cal(int a){ int sum=0; while(a){ if(a%2){ sum++; } a/=2; } return sum;} int main() { int L,R; scanf("%d%d",&L,&R); int sum=0; for(int i=L;i<=R;i++){ sum+=cal(i); } printf("%d",sum); return 0;}