zoukankan      html  css  js  c++  java
  • 大爽Python入门练习题 28 跳跃输出

    大爽Python入门练习题总目录

    第二章 中期练习题 中等 第8题

    题目

    简介

    实现一个函数jump_print(lst)
    接受一个数组(列表)lst作为参数。

    先将lst的首项作为当前项,
    输出当前项,并将索引往后移动当前项的值,
    (最后一项,索引往后移动一格,则移动到首项,相当于把列表看作一个环)
    然后将索引对应的项作为当前项,循环输出与移动。
    直到索引重复时停止循环,索引重复项不输出。

    函数无返回值。

    详细说明

    比如如下列表

    lst = [3, 6, 4, 1, 2]
    

    循环输出详细过程如下

    • 当前索引为0,对应的项为3,输出3
      索引往后移动3格(+3),移动后索引为3
    • 当前索引为3,对应的项为1,输出1
      索引往后移动1格(+1),移动后索引为4
    • 当前索引为4,对应的项为2,输出2
      索引往后移动2格(+2),移动后索引为1
    • 当前索引为1,对应的项为6,输出6
      索引往后移动6格(+6),移动后索引为2
    • 当前索引为2,对应的项为4,输出4
      索引往后移动4格(+4),移动后索引为1
    • 当前索引为1,索引重复(之前已经走过并输出过),退出循环。

    所以完整总输出如下

    3
    1
    2
    6
    4
    

    示例

    示例一

    lst = [3, 6, 4, 1, 2]
    jump_print(lst)
    

    输出为

    3
    1
    2
    6
    4
    

    示例二

    lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    jump_print(lst)
    

    输出为

    1
    2
    4
    8
    7
    5
    

    示例三

    lst = [7, 4, 6, 1, 5, 3, 1, 2]
    jump_print(lst)
    

    输出为

    7
    2
    4
    3
    

    分割线

    本小段没有实际意义,
    仅用于分隔题目和答案。
    防止学生无意中直接看到答案,
    影响思路。



















    答案

    def jump_print(lst):
        record = []
        current = 0
    
        while current not in record:
            record.append(current)
            print(lst[current])
            current += lst[current]
            current = current % len(lst)
    
  • 相关阅读:
    JavaScript根据CSS的Media Queries来判断浏览设备的方法
    JavaScript API 设计原则
    高性能 CSS3 动画
    CSS代码实例:用CSS代码写出的各种形状图形
    frontpage 2010.2003绿色版
    Web前端年后跳槽必看的各种面试题
    [ksm][数学] Jzoj P5810 简单的玄学
    [分治] Jzoj P5807 简单的区间
    [dfs][bfs] Jzoj P5806 简单的操作
    [dp] Jzoj P5804 简单的序列
  • 原文地址:https://www.cnblogs.com/BigShuang/p/15685717.html
Copyright © 2011-2022 走看看