@@思考方向:重新定義一新的串列,此串列會移除第i個,然後從第i+1個重新排列
程式碼:
n,m,k=input().split(' ')
n=int(n) #輸入n個人
m=int(m) #每到第m個人就爆炸
k=int(k) #k個爆彈,炸k次
#每炸掉一個,串列重新編號,成一個新的串列
def remove(list,i):
return list[i+1:]+list[0:i]
#n個人編號,1~N
a=[]
for i in range(1,n+1):
a.append(i)
# k個炸彈,炸完重新編號,每次炸新串列的第m個人
for j in range(1,k+1):
a=remove(a,m-1) #注意是第m個人,所以m-1
#全炸完後,新串列的第一個人即是幸運者
print(a[0])
===========================================
@網路看到更簡捷的碼:
data=input().split(' ')
N,M,K=map(int,data)
person=[i for i in range(1,N+1)]
index=0
for i in range(K):
index=(index+M-1)%len(person)
del person[index]
if index==len(person):
index=0
print(person[index])
沒有留言:
張貼留言