题目求的是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 人评分
printf基础练习2 (有点不明白)浏览:849 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:721 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:872 |
【计算球体积】 (C语言代码)浏览:1126 |
C语言程序设计教程(第三版)课后习题9.1 (C语言代码)浏览:688 |
Minesweeper (C语言描述,蓝桥杯)浏览:1135 |
循环入门练习6 (C语言代码)浏览:988 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:677 |
简单的a+b (C语言代码)浏览:592 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:709 |