KateWilson

Задача Иосифа Флавия или считалка Джозефуса

Jul 24th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.62 KB | None | 0 0
  1. #Вариант 1 (Wikipedia)
  2. x = []
  3. N = int(input())  #Кол-во игроков
  4. k = int(input())  #Периодичность выбывания из игры
  5. for i in range(0, N):
  6.     x.append(i)
  7. print(x)
  8.  
  9.  
  10. if k>N:
  11.     i = k - N
  12. else:
  13.     i = k
  14.    
  15.    
  16. while len(x) > 1:
  17.     print(x.pop(i)) #УБИВАЕТ ПООЧЕРЕДНО ИГРОКОВ
  18.     i = (i + k - 1) % len(x)
  19. print('Выиграл', x[0])
  20.  
  21. #Вариант 2
  22. n = int(input())
  23. members = list(range(1,n+1))
  24. print(members)
  25. k = int(input())
  26. p = 0
  27.  
  28. for i in range(n-1):
  29.     p = (p + k - 1) % len(members)
  30.     del members[p]
  31. print(members)
Add Comment
Please, Sign In to add comment