题目名称 809. [Tyvj 1236] 比特
输入输出 bita.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 GravatarMakazeu 于2012-06-14加入
开放分组 全部用户
提交状态
分类标签
数学 位运算 模拟
分享题解
通过:110, 提交:150, 通过率:73.33%
Gravatar1020 100 0.000 s 0.00 MiB C++
Gravatar农场主 100 0.000 s 0.13 MiB Pascal
Gravatar农场主 100 0.000 s 0.17 MiB Pascal
GravatarLunatic 100 0.011 s 4.10 MiB C++
GravatarAntiLeaf 100 0.017 s 0.29 MiB C++
Gravatarzjmfrank2012 100 0.017 s 0.31 MiB C++
Gravatar瑆の時間~無盡輪迴·林蔭 100 0.018 s 21.29 MiB C++
Gravatar→震世逆空波→ 100 0.019 s 7.92 MiB C++
Gravatar天一阁 100 0.019 s 7.94 MiB C++
GravatarEzoi_XY 100 0.021 s 0.17 MiB Pascal
本题关联比赛
20140713下午练习
关于 比特 的近10条评论(全部评论)
向排行榜上的大神们学习!
GravatarVacaTionGOD
2015-10-23 23:32 5楼
比特超流逼模拟算法!!!
Gravatar农场主
2014-10-24 16:35 4楼
其实直接模拟就行了吧= =
GravatarHouJikan
2014-09-02 21:45 3楼
原本想打表的,后来发现貌似用不到。。。
GravatarLetter zZZz
2014-04-18 21:38 2楼
...
Gravatar苏轼
2013-09-19 16:21 1楼

809. [Tyvj 1236] 比特

★★   输入文件:bita.in   输出文件:bita.out   简单对比
时间限制:1 s   内存限制:128 MiB

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