zoukankan      html  css  js  c++  java
  • python之找最后一个人

    题目大概是:有10个人围成一圈,从第一个人数,数到3的人出局,问最后一个人是谁?

    围成一圈,那就是无限循环,直至最后一个人,我们可以把10个人看做一个列表,每循环一次就把除3为0的数去除,下次再次循环时需要考虑上次循环的余数是0、1、2中的哪个。

    具体代码如下

    #!/usr/bin/env python
    #-*-coding:utf-8-*-
    
    n = 10
    
    #创建初始列表person
    for i in range(1,n+1):
        person.append(i)
    
    #设置俩个循环变量j和i
    j = n
    i = 0
    
    #无限循环
    while True:
        #创建一个回收列表
        dellist = []
        
        if i = 0:
            for i in range(1,j+1):
                if i%3 == 0:
                    dellist.append(person[i-1])
        if i = 1:
            for i in range(2,j+2):
                if i%3== 0:
                    dellist.append(person[i-2])
        else:
            for i in range(3,j+3):
                if i%3 == 0:
                    dellist.append(person[i-3])
        i = i%3
        j =j-len(dellist)
        
        for delperson in dellist:
            person.remove(delperson)
        if len(person) == 1:
            break
    
    print("Last person is %d"%person[0])
    

      

  • 相关阅读:
    Maven配置始终获取最新版本
    使用SpringBoot
    SpringBoot文档综述
    35_方法的使用
    34_结构体指针类型的使用
    33_同名字段的使用
    32_匿名字段的使用
    31_结构体的使用
    30_map的使用
    29_猜字游戏
  • 原文地址:https://www.cnblogs.com/watertaro/p/9530424.html
Copyright © 2011-2022 走看看