title: ‘算法训练-二进制数数’date: 2020-03-11 21:18:21
tags: [蓝桥杯]
published: true
hideInList: false
feature:
isTop: false

  1. /*
  2. 试题 算法训练 二进制数数
  3. 资源限制
  4. 时间限制:1.0s 内存限制:256.0MB
  5. 问题描述
  6.   给定L,R。统计[L,R]区间内的所有数在二进制下包含的“1”的个数之和。
  7.   如5的二进制为101,包含2个“1”。
  8. 输入格式
  9.   第一行包含2个数L,R
  10. 输出格式
  11.   一个数S,表示[L,R]区间内的所有数在二进制下包含的“1”的个数之和。
  12. 样例输入
  13. 2 3
  14. 样例输出
  15. 3
  16. 数据规模和约定
  17.   L<=R<=100000;
  18. */
  19. #include <algorithm>
  20. #include <cstdio>
  21. #include <cstring>
  22. int cal(int a){
  23. int sum=0;
  24. while(a){
  25. if(a%2){
  26. sum++;
  27. }
  28. a/=2;
  29. }
  30. return sum;
  31. }
  32. int main() {
  33. int L,R;
  34. scanf("%d%d",&L,&R);
  35. int sum=0;
  36. for(int i=L;i<=R;i++){
  37. sum+=cal(i);
  38. }
  39. printf("%d",sum);
  40. return 0;
  41. }