问题3252--二进制位3252: 二进制位
时间限制: 1 Sec 内存限制: 512 MB
提交: 0 解决: 0
[提交] [状态] [讨论版] [命题人:]题目描述
对于一个十进制整数,我们可以很容易地将它转化为二进制数,例如:
5 —— 101
13 —— 1101
23 —— 10111
现在我们关心的是,一个数的二进制表示中,出现多少相邻的1的情况。例如5表示成的101,没有出现相邻的1;13表示成的1101,开头两个1相邻,所以有1个;23表示成的10111,最后三位全是1,所以出现两个。
现在给出n,请求出1到n之间所有的数的二进制共出现多少相邻的1的情况。
输入
输入包含一个整数n(1<=n<=1,000,000)。
输出
输出一个整数,为所求的答案。
样例输入
22
样例输出
14
来源/分类
[提交] [状态]