A26971. 幂和数
填空题
较易
知识点
题目描述
幂和数
题目描述
对于正整数n,如果n可以表为两个2的次幂之和,即n=2x+2y(x,y均为非负整数),那么称n为幂和数。
给定正整数l,r,请你求出满足l≤n≤r的整数n中有多少个幂和数。
输入格式
一行,两个正整数l,r,含义如上。
3.2.3 输出格式
输出一行,一个整数,表示 l,r之间幂和数的数量。
样例
输入样例 1
2 8输出样例 1
6输入样例 2
10 100输出样例 2
20数据范围
对于所有测试点,保证1≤l≤r≤104。
参考答案
#include <iostream>
using namespace std;
int main()
{
int l, r, a, b, n, cnt = 0;
cin >> l >> r;
a = 1;
while(a<=r)
{
b = a;
while(b<=r)
{
n = a+b;
if(n>=l && n<=r) cnt++;
b *= 2;
}
a *= 2;
}
cout << cnt <<endl;
return 0;
}
上一题
下一题