問題描述:
n個人圍成一個圈,由第1個人開始報數,每報數到第k個人該人退出圈,然後再由下一個從1開始報數,求最後剩下一個人是多少號?
如下,使用python的切片實現
def f(s, k):
while len(s) != 1:
if(len(s) < k):
k = k % len(s)
s = s[k:] + s[:k - 1]
print(s)
f(list(range(1,100)), 3)
問題描述:
n個人圍成一個圈,由第1個人開始報數,每報數到第k個人該人退出圈,然後再由下一個從1開始報數,求最後剩下一個人是多少號?
如下,使用python的切片實現
def f(s, k):
while len(s) != 1:
if(len(s) < k):
k = k % len(s)
s = s[k:] + s[:k - 1]
print(s)
f(list(range(1,100)), 3)
1.while循環的格式 while 條件: 條件滿足時,做的事情1 條件滿足時,做的事情2 條件滿足時,做的事情3 ...(省略)... demo