来哈,这道题是悦儿姐最恨的一道题,在悦儿姐准备考四级的时候就遇见过它,当时没有做出来。当考四级的时候居然又见着它了,真是哪壶不提开哪壶,悦儿姐瞬间来了个泪崩。好啦,现在早就解决啦,今天感觉没什么可发的,就发了这个:题目有点小偷懒,直接用图片啦:
好,这道题很简单,难就难在怎么让他遍历完了再从头开始。好,看代码吧:
def fn(n,m): x=0 # 索引号 l=list(range(1,n+1)) # 创建一个列表 if n == 1: # 只有一个人 这里注意 我们这不是递归终止条件 我们没有用递归 print('最终胜利者是 :',l[x]) else: for i in range(n-1): # 因为最后胜利的人你得把他留着,所以要n-1 x=(x+m)%len(l)-1 # 这是这类题的关键 print('出局的人是:',l[x]') del l[x] # 把他踢出去 if x<0: # 绕到头 x=0 # 再回来 print('最终胜利者是 :',l[x]) fn(10,4)
好,到这里,本期有点简单,我就没咋注释,有什么不懂的,私信或者评论。不会啥题,来找我。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)