考点:程序逻辑和调试,类似环形链表结构【Python习题03】

简介: 考点:程序逻辑和调试,类似环形链表结构【Python习题03】

考点:

程序逻辑和调试,类似环形链表结构

题目:

有n个人围成一圈,顺序排号。

从第一个人开始报数(从1到3报数),

凡报到3的人退出圈子,

问最后留下的是原来第几号的那位。

假定有10个人手牵手绕成一圈,即n=10

程序效果:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

移除报到3的人后  [1, 2, 4, 5, 6, 7, 8, 9, 10]

移除报到3的人后  [1, 2, 4, 5, 7, 8, 9, 10]

移除报到3的人后  [1, 2, 4, 5, 7, 8, 10]

移除报到3的人后  [1, 4, 5, 7, 8, 10]

移除报到3的人后  [1, 4, 5, 8, 10]

移除报到3的人后  [4, 5, 8, 10]

移除报到3的人后  [4, 5, 10]

移除报到3的人后  [4, 10]

移除报到3的人后  [4]

编写思路:

1.可以先用小的数值进行测试,让人数少点,然后看数据变化。

2.这里因为是n个人绕成一圈,所以计数的时候count的值要能够从头到尾、从尾到头都能连续计数。所以要将count设置为全局变量。

3.可以直接通过一个索引变量从list1中读取每一个数据,值得注意的是读到最后一个数据后要重置索引为0,这样可以形成环形结构读取。

4.使用if。。。else。。。语句来区分list1的索引是否读取到列表的末尾一个。

5.需要用到循环一直不停读取,直到最后一个人。

源代码:

"""
n=10
list1=[i for i in range(1,n+1)]
print(list1)
count=0
curindex=0
while len(list1)>1:
    #开始报数
    count+=1
    if count==3:
        count=0
        del list1[curindex]
        curindex-=1
        print("移除报到3的人后 ",list1)
    if curindex==len(list1)-1:
        curindex=0
    else:
        curindex += 1
# print(list1)

总结部分:

      这道题目考查的除了一个程序要的逻辑思维以外,还重点需要结合程序的调试,考查一个人的程序调试能力,是一个较为综合性的题目。

相关文章
|
14天前
|
存储 JSON 监控
告别Print,使用IceCream进行高效的Python调试
本文将介绍**IceCream**库,这个专门用于调试的工具显著提升了调试效率,使整个过程更加系统化和规范化。
37 2
告别Print,使用IceCream进行高效的Python调试
|
12天前
|
算法 定位技术 Python
震惊!Python 图结构竟然可以这样玩?DFS&BFS 遍历技巧大公开
在 Python 编程中,图是一种重要的数据结构,而深度优先搜索(DFS)和广度优先搜索(BFS)是遍历图的两种关键算法。本文将通过定义图的数据结构、实现 DFS 和 BFS 算法,并通过具体示例展示其应用,帮助读者深入理解这两种算法。DFS 适用于寻找路径和检查图连通性,而 BFS 适用于寻找最短路径。掌握这些技巧,可以更高效地解决与图相关的复杂问题。
26 2
|
18天前
|
Python
SciPy 教程 之 SciPy 图结构 7
《SciPy 教程 之 SciPy 图结构 7》介绍了 SciPy 中处理图结构的方法。图是由节点和边组成的集合,用于表示对象及其之间的关系。scipy.sparse.csgraph 模块提供了多种图处理功能,如 `breadth_first_order()` 方法可按广度优先顺序遍历图。示例代码展示了如何使用该方法从给定的邻接矩阵中获取广度优先遍历的顺序。
27 2
|
19天前
|
算法 Python
SciPy 教程 之 SciPy 图结构 5
SciPy 图结构教程,介绍图的基本概念和SciPy中处理图结构的模块scipy.sparse.csgraph。重点讲解贝尔曼-福特算法,用于求解任意两点间最短路径,支持有向图和负权边。通过示例演示如何使用bellman_ford()方法计算最短路径。
28 3
|
25天前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
29 3
|
20天前
|
算法 索引 Python
SciPy 教程 之 SciPy 图结构 3
SciPy 图结构教程:介绍图的基本概念、节点和边的定义,以及如何使用 SciPy 的 `scipy.sparse.csgraph` 模块处理图结构。重点讲解 Dijkstra 最短路径算法及其在 SciPy 中的应用,包括 `dijkstra()` 方法的参数设置和使用示例。
15 0
|
20天前
|
Python
SciPy 教程 之 SciPy 图结构 2
《SciPy 教程 之 SciPy 图结构 2》介绍了图结构作为算法学中的重要框架,通过 `scipy.sparse.csgraph` 模块处理图结构。文章示例展示了如何使用 `connected_components()` 方法查找所有连接组件,通过创建稀疏矩阵并调用该方法实现。
11 0
|
21天前
|
算法 Python
SciPy 教程 之 SciPy 图结构 1
SciPy 图结构教程介绍了图的基本概念及其在算法中的应用。图由节点和边组成,节点代表对象,边表示对象间的连接。SciPy 的 `scipy.sparse.csgraph` 模块提供了处理图结构的工具。邻接矩阵用于表示节点间的连接关系,分为有向图和无向图两种类型。无向图的边是双向的,而有向图的边则有明确的方向。
29 0
|
1月前
|
自然语言处理 Java 编译器
为什么要看 Python 源码?它的结构长什么样子?
为什么要看 Python 源码?它的结构长什么样子?
26 2
|
1月前
【数据结构】环形、相交、回文、分割、合并、反转链表
【数据结构】环形、相交、回文、分割、合并、反转链表
28 0
下一篇
无影云桌面