用Python實現約瑟夫問題

論文終稿出來了,閒的蛋疼,就看隨便看了一些Python的東西,試着寫了一些小代碼。去年面試一家單位時遇到一個問題約瑟夫問題的代碼, python

def yuesefu(pNum,k):#pNum約瑟夫環的人數,k相隔多少我的就提出去
    if pNum>0:
        if k>0:
            a = [x for x in range(1,pNum)]
            del_number = k
            for i in range(pNum-1):
                print(a[del_number-1])
                del a[del_number-1]
                del_number=(del_number-1+k)%len(a)
            print('the last number is: ')
            print(a)
yuesefu(30,8) #共30人,每間隔8個就剔除一我的
相關文章
相關標籤/搜索