"""
print len([n for n in xrange(1000,10000) if (n % 10 == 7 and n % 3 == 0)])
#!/usr/bin/python
# encoding: utf-8
#
# filename: baidu.py
# date June, 2013
"""
5、有20支猴子要選取猴王,采用了這樣的方法:
20支猴子依次編了號(1-20)並圍坐壹圈,1,2,3開始報數,報到3的被淘汰。最後壹支猴子為王。
請問猴王的編號是多少,其余被淘汰的猴子的編號是多少?編程實現或寫出編程思路。
"""
class Rang:
def __init__(self, lst):
self.lst = lst
def run(self):
buff = self.lst
rque = []
byps = []
caid = 1
loopflag = True
while loopflag:
while buff:
a = buff.pop(0)
if caid == 3:
byps.append(a)
caid = 0
else:
rque.append(a)
caid += 1
buff, rque = rque, []
if len(buff) == 1:
king = buff[0]
loopflag = False
return king, byps
rang = Rang(range(1,21))
king, bypass = rang.run()
print u"猴王的編號", king
print u"被淘汰的猴子的編號是", bypass