解题思路:
注意事项:
参考代码:
n=int(input())
x=n
blist=[]
alist=[i for i in range(1,n+1)] #生成初始顺序
#print(alist) 输出初始顺序 (该行题目答案不需要)
d=1 #d按照1,2,3交替代表报到的数
while x>0:
for i in range(0,len(alist)):
if d==3 and alist[i]!=0: #数到3且该位置人未被淘汰
# print(alist[i]) 输出此时将被淘汰的人(该行题目答案不需要)
blist.append(alist[i])
alist[i]=0
x-=1
d=0 #报到3了将其退回原点
elif alist[i]==0: #代表此位置的人已经被淘汰
d-=1 #将d回退一位,该位置无效
d+=1 #报数递增
#print(blist) 输出淘汰顺序列表(该行题目答案不需要)
print(blist[-1]) #输出最后淘汰的人
0.0分
1 人评分
母牛的故事 (C语言代码)浏览:1409 |
2^k进制数 (C++代码)使用递归方法浏览:736 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1091 |
C语言训练-斐波纳契数列 (C语言代码)浏览:1271 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:545 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:1323 |
简单的a+b (C语言代码)浏览:572 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:612 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:416 |
字符逆序 (C语言代码)浏览:541 |