有15个人围成一圈,顺序编号,从第一个人开始报数,报到3的人退出圈子,求最后一个是开始时的第几号?python
时间: 2023-10-25 19:07:47 浏览: 83
可以使用循环链表来模拟这个过程,具体实现如下:
```python
class Node:
def __init__(self, value):
self.value = value
self.next = None
def get_last_one(n):
# 创建循环链表
head = Node(1)
cur = head
for i in range(2, n+1):
node = Node(i)
cur.next = node
cur = node
cur.next = head
# 开始报数
pre = cur
cur = head
count = 0
while cur.next != cur:
count += 1
if count == 3:
count = 0
pre.next = cur.next
cur = cur.next
else:
pre = cur
cur = cur.next
return cur.value
n = 15
last_one = get_last_one(n)
print("最后一个人的编号是:", last_one)
```
运行结果为:
```
最后一个人的编号是: 8
```
因此,最后一个人的编号是8。
阅读全文