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

     

  • 相关阅读:
    learnyou 相关网站
    hdu 3038 How Many Answers Are Wrong
    hdu 3047 Zjnu Stadium 并查集高级应用
    poj 1703 Find them, Catch them
    poj 1182 食物链 (带关系的并查集)
    hdu 1233 还是畅通工程
    hdu 1325 Is It A Tree?
    hdu 1856 More is better
    hdu 1272 小希的迷宫
    POJ – 2524 Ubiquitous Religions
  • 原文地址:https://www.cnblogs.com/banluqiaodaima/p/15606901.html
Copyright © 2011-2022 走看看