某大厂测开面试题解析(python)——给1-100编号,每次从中拿走奇数位数字,剩下重新编号,再拿走奇数位,循环多次到最后剩下一个数字,请返回这个数字的原始编号

2021/11/27 14:11:58

本文主要是介绍某大厂测开面试题解析(python)——给1-100编号,每次从中拿走奇数位数字,剩下重新编号,再拿走奇数位,循环多次到最后剩下一个数字,请返回这个数字的原始编号,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

转载请注明作者和出处:美二 https://blog.csdn.net/qq_32654897/article/details/88579713

目录

    • 一、题目要求
    • 二、剖析题目
    • 三、解题思路
    • 四、代码展示

一、题目要求

  • 给1-100编号,每次从中拿走奇数位数字,剩下重新编号,再拿走奇数位,循环多次到最后剩下一个数字,请你返回这个数字的原始编号

二、剖析题目

  • 【给1-100编号】——首先要创建一个集合来放置这些数字(list)
  • 【每次都拿走奇数位数字】——说明1.需要循环多次,2.需要通过下标来确定拿走的是哪个数字
  • 【剩下重新编号】——也就是说原来的编号顺序会打乱,如果我们在原有的列表里删除不符合条件的,下标则无法确认,因此我们在开始时新建一个列表,将符合条件的append到新列表(new_list)

三、解题思路

  1. 创建一个list放置1-100 (通过for循环来将数据挨个append到list)
  2. 写一个函数odd_number(将下标为偶数的数字append到new_list并返回)
  3. 写一个循环不断调用odd_number函数,直到列表内只剩一个数字(len(list)==1),然后输出list即可

四、代码展示

def odd_number(list):
    '''
    传入一个list,获取列表下标为偶数的值将其放在一个new_list
    :param list: 列表[]
    :return: new_list[]
    '''
    new_list = []
    for i in range(len(list)):
        if i % 2 != 0:
            new_list.append(list[i])

    return new_list

#首先创建一个list,放置1-100
list=[]
for i in range(1,101):
    list.append(i)

#循环调用odd_list函数直至列表list内只剩一个数字
while len(list)!=1:
    list = odd_number(list)
print(list)

大家有更好的方法可以在评论区交流哦~多多指教。



这篇关于某大厂测开面试题解析(python)——给1-100编号,每次从中拿走奇数位数字,剩下重新编号,再拿走奇数位,循环多次到最后剩下一个数字,请返回这个数字的原始编号的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程