第n个最小数字,n位设置为1

Ani*_*tti 1 c algorithm bit

存在一系列递增的数字,其中包含相同数量的二进制1.给定n(系列中每个数字中设置的1位数)写入算法或C程序以找到系列中的第n个数字.

我在互联网上发现了这个问题,我认为答案只是(((1 <<(n + 1)) - 1)&~2).不是吗?我发现了一些可怕的程序来计算答案.

Ste*_*non 5

(1 << n+1) - 3 表达结果是一种更简洁的方式,但是,我相信你的表达也是正确的.

  • 或者,更好的是,`(2 << n) - 3` (4认同)