最后留下的是原来第4号的人 1. 代码解析: 我们定义了一个名为josephus的函数,该函数接受一个参数n,表示人数。 在函数内部,我们首先创建一个包含1到n的人员列表people。 初始化索引index和报数计数器count为0。 使用循环来模拟报数和淘汰的过程,直到只剩下一人。每次报数到3时,将当前人员从列表中移除。 如果还有...
times = count/3+2count_tial =0foriinrange(times):forjinrange(count_tial+1,len(li)+count_tial+1):ifcount_tial ==2: li[0] =0if(j - count_tial) <len(li)and(j+1)%3==0: li[j - count_tial] =0count_0 = li.count(0)try: count_tial =len(li) - li.index(0,len(li)-3...
for i in range(0, len(li_co)): # 内层循环开始,从第一个人开始报数 count = count + 1 # 每报一次,count计数器加1 if count % 3 == 0: # 如果count能被3整除,则是报到3的人 li_c.remove(li_co[i]) # 把报到3的人移除原数组,进行下一次循环 print('最后留下的是原来的第 {} 号。'....
#有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。n=int(input("请输入人数:"))list=[]# 创建一个空列表count=0#创建一个计数的值fori inrange(1,n+1):#创建一个循环,将列表当中的所有元素都添加进去list.append(i)whileTrue:# ...
k = 3 [1,2,0,4,5,6,7,8,9,10] num[2] = 3 k +=1 i += 1 ==> k = 0 i = 3 m = 1 k = 1 [1,2,0,4,5,6,7,8,9,10] num[0] = 1 k +=1 i += 1 ==> k = 1 i = 4 m = 1 k = 2 [1,2,0,4,5,6,7,8,9,10] num[1] = 2 k +=1 i += 1...
python 实现:题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位 count = int(input('Please input the count:')) li=[]foriinrange(count): li.append(i+1) times= count//3 +2count_tial=0foriinrange(times):forjinrange(...
python 实现:题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位 count = int(input('Please input the count:')) li=[]foriinrange(count): li.append(i+1) times= count//3 +2count_tial=0foriinrange(times):forjinrange(...