二进制翻转
题目描述 定义函数 𝑅𝑅𝑅𝑅𝑅𝑅(𝑥𝑥) 表示把 𝑥𝑥 在二进制表示下翻转后的值。
例如:
𝑅𝑅𝑅𝑅𝑅𝑅(4) = 1,因为 4 等于(100)2 ,翻转后是 (001)2 ,也就是 1。
𝑅𝑅𝑅𝑅𝑅𝑅(6) = 3,因为 6 等于(110)2 ,翻转后是 (011)2 ,也就是 3。
定义 𝐶𝐶𝐶𝐶𝐶𝐶(𝑥𝑥) 表示 𝑥𝑥 在二进制表示下 1 的个数,求: ∑𝑛𝑛𝑖𝑖=0 𝐶𝐶 𝑛𝑛𝑛𝑛(𝑅𝑅𝑅𝑅𝑅𝑅(𝑖𝑖) + 𝑖𝑖)
输入格式 一行,一个整数𝑛𝑛。
输出格式 输出一个数,表示答案。
样例输入 1 123
样例输出 1 460
样例输入 2 9169749547
样例输出 2 154039533804
数据规模 共 10 个测试点。
测试点1,2满足𝑛𝑛 ≤ 105 。
测试点3,4满足𝑛𝑛 ≤ 107 。
测试点5,6,7满足𝑛𝑛 ≤ 1010 。
对于所有数据,满足0 ≤ 𝑛𝑛 ≤ 1015 。