zoukankan      html  css  js  c++  java
  • PTA的Python练习题(十七)

    第4章-18 猴子选大王

    我的思路是两层循环,count计算如果取余等于3就从数组里面删除,一开始以为挺对的(代码如下):

    a=eval(input())
    s=[]
    count=0
    flag=0
    for i in range(1,a+1):
        s.append(i)
    #print(s)
    while(flag <= 0):
      count = 0
      c = len(s)
      for i in s:
          count=count+1
          if count%3==0:
              s.remove(i)
              #print(s)
          if count==c:
              break
          if c==1:
              print(s[0])
              flag=1
              break

    运行以后进入死循环,因为数组最后会剩下两个数,无法结束,而且那两个数是固定的,1和2

    思路错就错在围成一圈

    参考代码:

    n=int(input())
    monkey=[]
    timer=0
    count=0
    if(n>0 and n<=1000):
        for i in range(1,n+1):
            monkey.append(i)
        while(len(monkey)>1):
           timer+=1
           count+=1
           if(count>len(monkey)):
               count=1
           if(timer==3):
               timer=0
               monkey.pop(count-1)
               count-=1
        print(monkey[0])

    想了很久没有想通,明早还有课,有空重新来写一下

    [Sign]做不出ctf题的时候很痛苦,你只能眼睁睁看着其他人领先你
  • 相关阅读:
    获取指定<文字行数>的<高度>是多少 TextKit
    JS 与 OC 交互
    PHP-note
    MySQL函数
    freeSWITCH之多平台测试通信
    freeSWITCH之安装
    PHP面向对象
    MySQL Optimization 优化原理
    理解常量指针与指针常量?
    InterView之PHP(2)
  • 原文地址:https://www.cnblogs.com/echoDetected/p/12358857.html
Copyright © 2011-2022 走看看