题目描述:
n个人站成一圈,编号从1到n,然后开始报数,报到m的人出列,下一个开始从头报数,报到m的人出列、、、、以此类推,直到最后一个人出列,打印出列的人的编号顺序;
解法一:
n=input();
m=input();
radishs=list(range(1,n+1));
index=0;
step=m-1;
while radishs:
index+=step;
if index<len(radishs):
print(radishs.pop(index));
else:
index%=len(radishs);
print(radishs.pop(index));
#解法一看不懂的可以看解法二,解法一是由解法二优化过来的;
解法二:
# coding=utf-8
n=input();
m=input();
radishs=list(range(1,n+1));
index=m-1;
step=m-1;
while radishs:
if index<len(radishs):
print(radishs.pop(index));
index+=step;
else:
index-=(len(radishs));
运行结果