A7024. [GESP202509 五级] 有趣的数字和
编程题
普及/提高-
知识点
题目描述
如果一个正整数的二进制表示中包含**奇数个** $1$,则称这个正整数是**有趣的**。
例如,$7$ 的二进制表示为
给定两个正整数 $l$ 与 $r$,请你统计区间 $[l,r]$ 内所有有趣整数的**和**。
例如,$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)$。
对于 另外的 $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)$。