# 约瑟夫环问题:有n个人围成一圈,从第一个人开始报数,凡报到k的人退出圈子,再由下一个人重新从1开始报数,数到k的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈的编号
# 输入描述
# 10 3
# 输出描述
# 3 6 9 2 7 1 8 5 10 4
def leave_user_number(total_number_n, number_k):
total_num_list = list(range(1, total_number_n + 1))
people_order_list, index = [], 0
while total_num_list:
temp_user = total_num_list.pop(0)
index += 1
if number_k == index:
index = 0
people_order_list.append(temp_user)
continue
total_num_list.append(temp_user)
if len(total_num_list) == 0:
break
for number in people_order_list:
print(number, end=" ")
leave_user_number(10, 3)