返回首页 返回题库

幂和数

C++ 入门 GESP二级真题 #循环#枚举

题目描述

题面描述

对于正整数 n,如果 n 可以表为两个 2 的次幂之和,即 n = 2x + 2y(x、y 均为非负整数),那么称 n 为幂和数。

给定正整数 l 和 r,请你求出满足 l ≤ n ≤ r 的整数 n 中有多少个幂和数。

输入格式

一行,两个正整数 l、r,含义如上。

输出格式

输出一行,一个整数,表示 [l, r] 之间幂和数的数量。

样例1

输入:

2 8

输出:

6

样例2

输入:

10 100

输出:

20

数据范围

对于所有测试点,保证 1 ≤ l ≤ r ≤ 104。


时间限制

1.0 s

内存限制

512.0 MB

💡 查看提示(先自己想一想再看)
考察知识点:枚举、循环结构、数学幂运算性质。解题思路:枚举所有不超过r的2的次幂,两两求和后统计落在[l, r]区间内的不同和的数量。注意两个2的次幂可以相同(即a和b可以相等),且不需要重复统计相同的和。
⚙ 开始做这道题 0 人做过 · 0 收藏 · 7 浏览

讨论(0)