有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
无。
#!/usr/bin/python
# -*- coding:
UTF-8 -*-if __name__ == '__main__':
nmax = 50n = int(raw_input('请输入总人数:
'))num = []for i in range(n):
num.append(i + 1)i = 0k = 0m = 0while m < n - 1:
if num[i] != 0 :
k += 1if k == 3:
num[i] = 0k = 0m += 1i += 1if i == n :
i = 0i = 0while num[i] == 0:
i += 1print num[i]
程序源代码:
实例(Python 2.0+)
#!/usr/bin/python
# -*- coding:
UTF-8 -*-if __name__ == '__main__':
nmax = 50n = int(raw_input('请输入总人数:
'))num = []for i in range(n):
num.append(i + 1)i = 0k = 0m = 0while m < n - 1:
if num[i] != 0 :
k += 1if k == 3:
num[i] = 0k = 0m += 1i += 1if i == n :
i = 0i = 0while num[i] == 0:
i += 1print num[i]
执行以上代码,输出结果:
$ python test.py 请输入总人数:
3410
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。