内容 :
不爽写程式的小光,转换地方,开始为奇摩知识+奉献,突然与腿肌同学,发现了某个人所提出来的问题,并展开激烈的讨论,最后终于...?
不过此问题,是某个测试系统的题目...
*** *** ********** //有意义的消音,多半是脏话...
题目描述
大家都知道二进制是由0和1两种数字组成的,十进制转二进制, 小明现在要玩一个游戏, 就是由1数到n,每数到一个数, 这个数的二进制有多少个1, 小明就要站起多少次, 例如数到9, 由于其二进制为1001, 所以小明要站起来两次, 为了知道自己能否应付这个游戏, 请你为小明算出, 由1数到n他必须站起来多少次?
输入格式
n (1--1000000)
输出格式
小明总共要站起来的次数
样例输入
12
样例输出
22
输入说明 :
每一行有一个数字N (1≦N≦1,0000,0000)
输出说明 :
请输出小明总共要站起来的次数。请输出mod 1000000000 之后的结果
范例输入 :
若题目没有特别说明,则应该以多测资的方式读取,若不知如何读取请参考 a001 的范例程式。
12
范例输出 :
22
提示 :
※ 题目管理员,可能会消失很久,投诉可能要等到
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | |||||
0 | 1 | 1 | 2 | 1 | 2 | 2 | 3 | 1 | 2 | 2 | 3 | 2 |
2^0 | 2^1 | 2^2 | 2^3 | |||||||||
0 | 1 | 2 | 4 | 5 | 7 | 9 | 12 | 13 | 15 | 17 | 20 | 22 |
1 | 4 | 12 | ||||||||||
f(x)=2*f(x-1)+2^(x-1) | ||||||||||||