题目求的是1的个数,二进制中,只包含0和1,所以只需要把每个数跟2的余数相加求和即可
#include using namespace std; //求二进制 int binary(int num) { int sum = 0; while(num != 0) { sum += num % 2; num /= 2; } return sum; } int main() { int L,R,sum = 0; cin >> L >> R; for (int i = L; i <= R; ++i) { sum += binary(i); } cout << (L == R ? binary(L) : sum) << endl; return 0; }
0.0分
1 人评分
C语言训练-阶乘和数* (C语言代码)浏览:995 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:542 |
C二级辅导-计负均正 (C语言代码)浏览:516 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:569 |
C语言程序设计教程(第三版)课后习题8.2 (Java代码)浏览:2269 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:696 |
C语言程序设计教程(第三版)课后习题10.1 (Java代码)浏览:1447 |
数组输出 (C语言代码)--此题的题目描述有问题浏览:1817 |
C语言训练-数字母 (C语言代码)浏览:649 |
WU-输入输出格式练习 (C++代码)浏览:1082 |