Advertisement
AlexG2230954

Задание 23. Способ 2

Apr 25th, 2022
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.45 KB | None | 0 0
  1. """
  2. Первый способ. Задом на перед
  3.  
  4. Через этот способ мы идем от результирующего числа к исходному.
  5. Наша функция отвечает на вопрос "сколько существует комманд от 2-х до n.
  6.  
  7. Плюсы:
  8. + похож на решение руками
  9.  
  10. Минусы:
  11. - дольше писать
  12. - больше условий, которые надо учитывать (делится ли на 3, например)
  13. """
  14.  
  15. A = 2  # исходное число
  16. B = 72  # результирующее число
  17.  
  18. def F(n):
  19.     # тут пишем плохие случаи. Либо мы убежали далеко за исходное число, либо мы сейчас
  20.     # на том числе, которое должны избегать
  21.     if n < A or n == 12 or n == 24:
  22.         return 0
  23.  
  24.     # если мы стоим ровно на исходном числе
  25.     if n == A:
  26.         return 1
  27.  
  28.     # если мы можем произвести операцию деления на 3
  29.     if n % 3 == 0:
  30.         return F(n - 1) + F(n // 3)
  31.  
  32.     # в противном случае мы не можем произвести операцию деления на 3 - пропускаем ее
  33.     return F(n - 1)
  34.  
  35. # вычисляем, сколько программ сузествует от 2-х до B
  36. print(F(B))
  37.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement