| 题目名称 | 809. [Tyvj 1236] 比特 |
|---|---|
| 输入输出 | bita.in/out |
| 难度等级 | ★★ |
| 时间限制 | 1000 ms (1 s) |
| 内存限制 | 128 MiB |
| 测试数据 | 10 |
| 题目来源 |
|
| 开放分组 | 全部用户 |
| 提交状态 | |
| 分类标签 | |
| 分享题解 |
| 通过:110, 提交:150, 通过率:73.33% | ||||
|
|
100 | 0.000 s | 0.00 MiB | C++ |
|
|
100 | 0.000 s | 0.13 MiB | Pascal |
|
|
100 | 0.000 s | 0.17 MiB | Pascal |
|
|
100 | 0.011 s | 4.10 MiB | C++ |
|
|
100 | 0.017 s | 0.29 MiB | C++ |
|
|
100 | 0.017 s | 0.31 MiB | C++ |
|
|
100 | 0.018 s | 21.29 MiB | C++ |
|
|
100 | 0.019 s | 7.92 MiB | C++ |
|
|
100 | 0.019 s | 7.94 MiB | C++ |
|
|
100 | 0.021 s | 0.17 MiB | Pascal |
| 本题关联比赛 | |||
| 20140713下午练习 | |||
| 关于 比特 的近10条评论(全部评论) | ||||
|---|---|---|---|---|
|
向排行榜上的大神们学习!
| ||||
|
比特超流逼模拟算法!!!
| ||||
|
其实直接模拟就行了吧= =
| ||||
|
原本想打表的,后来发现貌似用不到。。。
| ||||
|
...
| ||||
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)。
输入:22
输出格式 Output Format
输出一个整数,为所求的答案。
输出:14