有n人围坐一圈,按顺时针依次编号为0,1,...,n-1。由编号为0的人开始顺时针报号1,2,3。报到3的人退出,剩下的人继续报号,直到剩下最后1人。下面代码的作用是:输入人数,输出最后剩下的1个人的编号。请补充完整。程序保存到:s11E.py def f(n): a=[x for x in ] #生成n个人的编号组成的列表(对应n个人)。需补充完整 k=0 #当前报号人在a中的索引 m=n #剩下的人数 while m>1: k= #应该退出的人在a中的索引。需补充完整 a.remove( ) #在a中删除报号为3的人。需补充完整 m-=1 return a[0] n=int(input()) print(f(n))
3条回答 默认 最新
- CSDN专家-天际的海浪 2021-05-18 23:23关注
def f(n): a=[x for x in range(n)] #生成n个人的编号组成的列表(对应n个人)。需补充完整 k=0 #当前报号人在a中的索引 m=n #剩下的人数 while m>1: k= (k+2)%len(a)#应该退出的人在a中的索引。需补充完整 a.remove(a[k]) #在a中删除报号为3的人。需补充完整 m-=1 return a[0] n=int(input()) print(f(n))
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报