昨天在 G+ 上看到的一个算法题: > Returns the number of 1bits in any integer, for example, bits(2) = 1, > bits(3) = 2, bits(4) = 1, bits(5) = 2, bits(6) = 2, bits(7) = 3 我用 python 简单的实现了一下,实现的还是有点冗长,应该还能优化。 def bits(n): t = 2 f1 = lambda x: 2 * (x / 2) f2 = lambda x: x / 2 if n % 2 == 0: if (n / 2) <= 2: t = f1 else: t = f2 return n / t(n) + n % 2 else: if ((n-1) / 2) <= 2: t = f1 else: t = f2 return n / t(n - 1) + n % 2 print bits(2) print bits(3) print bits(4) print bits(5) print bits(6) print bits(7)
一个算法题
相关帖子
-
- 其他回帖
-
-
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于