藍橋杯 試題 演算法訓練 二進位制數數
阿新 • • 發佈:2021-01-29
試題 演算法訓練 二進位制數數
資源限制
時間限制: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 <iostream>
using namespace std;
int L;
int R;
int ans = 0;
int main()
{
cin >> L >> R;
for (int i = L; i <= R; i++)
{
int num = i;
while (num)
{
int x = num % 2;
num /= 2;
if (1 == x)
ans++;
}
}
cout << ans << endl;
return 0;
}
#include <iostream>
using namespace std;
int L;
int R;
int ans = 0;
int main()
{
cin >> L >> R;
for (int i = L; i <= R; i++)
{
int num = i;
while (num)
{
int x = num & 1;
num = num >> 1;
if (1 == x)
ans++;
}
}
cout << ans << endl;
return 0;
}
#include <iostream>
using namespace std;
int L;
int R;
int ans = 0;
int main()
{
cin >> L >> R;
for (int i = L; i <= R; i++)
{
int num = i;
while (num)
{
num = num & (num - 1);
ans++;
}
}
cout << ans << endl;
return 0;
}