有5个人比赛,采用淘汰制。那么第一轮有1人轮空,淘汰2人。剩下3人继续,又一人轮空,最后2人决赛。这样最后有2个人轮空。
那么37个人比赛有几个人轮空呢?
方法1:
可以用二进制移位来模拟:
if
最低位为1,则+1,计数器+1
右移1位
计数器为多少,则值为多少
eg:
37 = (0010 0101)2, count = 4.
方法2:
可以这么算:用比37大的最小的2的幂次的数也就是64,去减37,64-37=27,而27=16+8+2+1,所以27的二进制是11011,
数一数有四个1,所以37人比赛有4人轮空。
// 如果37人比赛每比赛一次,多出来的一人直接淘汰,那便是计算37的二进制100101.