码迷,mamicode.com
首页 > 其他好文 > 详细

囚犯枪决站位战略

时间:2016-10-04 16:15:16      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

Question:有N个囚犯编号分别为1~N,按顺序围成一个圈。从1号开始1、2、1、2…地轮流报数。数到2的囚犯将被枪决。最后只有一人能避过枪决活下来。求该囚犯的编号。

# coding:utf-8
N = input()
L0 = range(1,N+1)                   #定义编号列表

def start_1(L0):
    ‘‘‘开始报数为“1”的一轮枪决‘‘‘
    L=[]                           #存活囚犯编号列表
    for i in range(len(L0)):
        if i%2 == 0:
             L.append(L0[i])
    return L
def start_2(L0): ‘‘‘开始报数为“2”的一轮枪决‘‘‘ L=[] #存活囚犯编号列表 for i in range(len(L0)): if i%2 != 0: L.append(L0[i]) return L L = start_1(L0) #首轮开始报数为“1”,不加入循环 l = len(L0) #定义数组长度以确定下一轮的开始报数 ‘‘‘进入循环枪决,直到剩下一人‘‘‘ while len(L)>1: if l%2 == 0: L0 = L L = start_1(L0) l = len(L0) else: L0 = L L = start_2(L0) l = len(L0)+1 print L

 

囚犯枪决站位战略

标签:

原文地址:http://www.cnblogs.com/fangqiushun/p/5930592.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!