题目求的是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语言代码)浏览:518 |
The 3n + 1 problem (C语言代码)浏览:714 |
简单的a+b (C语言代码)浏览:720 |
WU-C语言程序设计教程(第三版)课后习题11.11 (C++代码)(想学链表的可以看看)浏览:1345 |
三角形 (C++代码)记忆化搜索浏览:1220 |
用筛法求之N内的素数。 (C语言代码)浏览:802 |
母牛的故事 (C语言代码)浏览:549 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:553 |
陶陶摘苹果2 (C语言代码)浏览:595 |
1231题解(注意理解“输入多个测试实例”)浏览:785 |