[Tyvj 1236]比特

成绩 0 开启时间 2013年02月21日 星期四 23:02
折扣 0.8 折扣时间 2013年02月28日 星期四 23:02
允许迟交 关闭时间 2013年02月28日 星期四 23:02
输入文件 bita.in 输出文件 bita.out

Source:tyvj20100619比赛

  对于一个十进制整数,我们可以很容易地将它转化为二进制数,例如:
5   ——  101
13  ——  1101
23  ——  10111
现在我们关心的是,一个数的二进制表示中,出现多少相邻的1的情况。例如5表示成的101,没有出现相邻的1;13表示成的1101,开头两个1相邻,所以有1个;23表示成的10111,最后三位全是1,所以出现两个。
现在给出n,请求出1到n之间所有的数的二进制共出现多少相邻的1的情况。
输入格式 Input Format
  输入包含一个整数n(1<=n<=1,000,000)。

输出格式 Output Format

  输出一个整数,为所求的答案。
输入:22

输出:14