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

A7024. [GESP202509 五级] 有趣的数字和

编程题 普及/提高-
知识点

题目描述

如果一个正整数的二进制表示中包含**奇数个** $1$,则称这个正整数是**有趣的**。


例如,$7$ 的二进制表示为 111,包含 $3$ 个 $1$(奇数个),因此 $7$ 是有趣的;$6$ 的二进制表示为 110,包含 $2$ 个 $1$(偶数个),因此 $6$ 不是有趣的。

给定两个正整数 $l$ 与 $r$,请你统计区间 $[l,r]$ 内所有有趣整数的**和**。

输入格式

一行,两个正整数 $l,r$。

输出格式

一行,一个整数,表示区间 $[l,r]$ 内所有有趣整数的和。

输入输出样例

输入 #1
3 8
输出 #1
19
输入 #2
65 36248
输出 #2
328505490

说明/提示

对于 $40\%$ 的测试点 ,保证 $1 \le l \le r \le 10^4$

对于 另外的 $30\%$ 测试点 ,保证 $l = 1$ 且 $r=2^k-1$ , 其中 $k$ 为大于 $1$ 的正整数

对于所有测试点,保证 $1\le l\le r\le 10^9$。

提示:可用前缀函数 $F(n)$ 计算 $[1..n]$ 内“有趣数”的和,答案为 $F(r)-F(l-1)$。
上一题 去做题 下一题