问题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

来源/分类

 

[提交] [状态]