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

     

  • 相关阅读:
    ssh图示+hibernate图示
    spring Transactional
    Spring datasource
    sqlloader导入数据
    Spring Aop Annotation(@Pointcut)
    ajax传输文件+检验
    Spring Aop Annotation
    JDK的动态代理
    nginx代理gitlab
    python相关
  • 原文地址:https://www.cnblogs.com/banluqiaodaima/p/15606901.html
Copyright © 2011-2022 走看看