测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题