python实现4、有15个人围成一圈,顺序编号,从第一个人开始报数,报到3的人退出圈子,求最后一个是开始时的第几号?
时间: 2024-03-20 15:44:26 浏览: 67
以下是 Python 代码实现:
```python
n = 15 # 总人数
m = 3 # 报数到 m 的人出圈
people = list(range(1, n+1)) # 初始化所有人的编号
i = 0 # 当前报数的人的索引
while len(people) > 1: # 只剩一个人时结束循环
i = (i + m - 1) % len(people) # 计算出圈人的索引
people.pop(i) # 删除出圈的人
print("最后剩下的人是开始时的第 %d 号。" % people[0])
```
输出结果为:
```
最后剩下的人是开始时的第 7 号。
```
相关问题
python实现有15个人围成一圈,顺序编号,从第一个人开始报数,报到3的人退出圈子,求最后一个是开始时的第几号?
这个问题可以使用链表来模拟这个过程。具体实现如下:
```python
class Node:
def __init__(self, value):
self.value = value
self.next = None
def last_remaining(n, m):
# 初始化链表
head = Node(1)
cur = head
for i in range(2, n+1):
cur.next = Node(i)
cur = cur.next
cur.next = head # 链接成环形链表
# 开始出圈
prev = cur # prev 指向 cur 的前一个节点
cur = head
count = 1
while cur.next != cur:
if count == m:
# 出圈
prev.next = cur.next
cur = cur.next
count = 1
else:
prev = cur
cur = cur.next
count += 1
return cur.value
n = 15
m = 3
print(f"最后剩下的人是开始时的第{last_remaining(n, m)}号。")
```
输出结果为:
```
最后剩下的人是开始时的第7号。
```
有15个人围成一圈,顺序编号,从第一个人开始报数,报到3的人退出圈子,求最后一个是开始时的第几号?python
可以使用循环链表来模拟这个过程,具体实现如下:
```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。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)