D**********d 发帖数: 849 | 1 任给一个N位二进制整数,找出所有“不比它大的”自然数:
eg. 四位二进制数 1010,
所有“不比它大的”自然数是 1000,0010,0000 三个
有没有好的算法? | h**o 发帖数: 78 | 2 看了你的例子还是不明白什么是“不比它大的”自然数
【在 D**********d 的大作中提到】 : 任给一个N位二进制整数,找出所有“不比它大的”自然数: : eg. 四位二进制数 1010, : 所有“不比它大的”自然数是 1000,0010,0000 三个 : 有没有好的算法?
| c**********e 发帖数: 2007 | 3 Simple. The answer is the 2^{the # of 1's} - 1. | a***n 发帖数: 423 | | x******a 发帖数: 6336 | 5 0101算不算是?
【在 D**********d 的大作中提到】 : 任给一个N位二进制整数,找出所有“不比它大的”自然数: : eg. 四位二进制数 1010, : 所有“不比它大的”自然数是 1000,0010,0000 三个 : 有没有好的算法?
| d**********9 发帖数: 5215 | 6 这样就不是二进制数了
【在 x******a 的大作中提到】 : 0101算不算是?
| D**********d 发帖数: 849 | 7 正解。具体的定义是若N 在某位上是 0, 则“比它小的”该位上也是 0; 若 N 在某位
上是 1, 则“比它小的”该位上可以是 1 或 0
【在 c**********e 的大作中提到】 : Simple. The answer is the 2^{the # of 1's} - 1.
|
|