zoukankan      html  css  js  c++  java
  • Python练习(三) 翻牌

    题目(来源于:程序员的算法趣题):

    有 100 张写着数字 1~100 的牌,并按依次顺序排列着。最开始所有牌都是背面朝上放置。我们从第 2 张牌开始,隔 1 张牌翻牌。然后第 2,4, 6, …, 100 张牌就会变成正面朝上。接下来,另一个人从第 3 张牌开始,隔 2 张牌翻牌(原本背面朝上的,翻转成正面朝上;原本正面朝上的,翻转成背面上)。再接下来,又有一个人从第 4 张牌开始,隔 3 张牌翻牌( 图1 )。像这样,从第 n 张牌开始,每隔 n-1 张牌翻牌,直到没有可翻动的牌为止。求当所有牌不再变动时,所有背面朝上的牌的数字。

     Python代码:欢迎交流。

    import numpy as np
    import datetime
    
    start = datetime.datetime.now()  
    flag=np.zeros((100),dtype=np.bool8)
    backnum=[]
    for i in range(2,101):
        j=i-1
        while(j<100):
            flag[j]= not flag[j]
            j=j+(i)
    index=0        
    for item in flag:
        index=index+1
        if(not item):
          backnum.append(index)      
    end=datetime.datetime.now()      
    spendtime=end-start 
    print("******************************************")   
    print("Result 2 is:")  
    print(backnum)        
    print("Turn Poker 2 Spend time:{}".format(spendtime))  
    View Code

     

  • 相关阅读:
    olcano调度器源代码走读actions篇
    dlv volcano scheduler
    informer
    DeltaFIFO reflector
    第五章 Redis集群
    第四章 Redis主从
    第三章 ACL安全策略
    第二章 Redis数据类型
    第一章 Redis基本原理
    第九章 Confluence集成Jira
  • 原文地址:https://www.cnblogs.com/banluqiaodaima/p/15606901.html
Copyright © 2011-2022 走看看