我被交付了一个任务,需要为其创建一段代码。 任务如下:
你是一艘帆船的船长,你和你的船员被海盗抓了起来。 那个海盗船长让你们站在他的船甲板上围成一个圆圈,试图决定你们应该以什么顺序走上木板。最终,他决定采用以下方法:
(a) 海盗船长要求你选择一个数字N。
(b) 第一个走上木板的人将是第N个人(从你开始)。
(c) 船长将继续沿着圆圈迫使每个第N个人走上木板。
(d) 当只剩下一个人时,那个人将获得自由。
例如:船员包括:Andrew, Brenda, Craig, Deidre, Edward, Felicity, Greg 和 Harriet。 Andrew选择N=2。船员将按以下顺序走上木板:Brenda, Deidre, Felicity, Harriet, Craig, Greg, Edward。Andrew将获得自由。
目前我所拥有的代码是:
你是一艘帆船的船长,你和你的船员被海盗抓了起来。 那个海盗船长让你们站在他的船甲板上围成一个圆圈,试图决定你们应该以什么顺序走上木板。最终,他决定采用以下方法:
(a) 海盗船长要求你选择一个数字N。
(b) 第一个走上木板的人将是第N个人(从你开始)。
(c) 船长将继续沿着圆圈迫使每个第N个人走上木板。
(d) 当只剩下一个人时,那个人将获得自由。
例如:船员包括:Andrew, Brenda, Craig, Deidre, Edward, Felicity, Greg 和 Harriet。 Andrew选择N=2。船员将按以下顺序走上木板:Brenda, Deidre, Felicity, Harriet, Craig, Greg, Edward。Andrew将获得自由。
目前我所拥有的代码是:
def survivor(names, step):
names = ["Andrew", "Brenda", "Craig", "Deidre", "Edward", "Felicity", "Greg", "Harriet"]
Next = step - 1
names.pop(Next)
print names
这将从列表中删除前n个人,但我不确定如何循环遍历列表以继续删除第n个人。
我需要它,所以假设step = 3,那么我需要删除craig,然后从craig开始计数并删除下一个第三个元素,即felicity,依此类推,直到只剩下一个人。
我该怎么做?