Advertisement
statheist

ybiuca23

Apr 26th, 2021 (edited)
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.14 KB | None | 0 0
  1. #кол-во способов перейти из 1 в 20
  2. #+1, +2, *2
  3. #обязательно проходя через 6, запрещено проходить через 8
  4. a = [0] * 100 # обязательно массив должен быть больше искомой длины
  5. a[1] = 1 # заполняем начальную ячейку известным значением
  6. for n in range(2, 21):
  7.     if n % 2 == 0: # если число четное кидаем в него сумму из 3 предыдуших значений массива
  8.         a[n] = a[n - 1] + a[n-2] + a[n // 2]
  9.     else: # иначе только из предыдущей и n-2
  10.         a[n] = a[n - 1] + a[n-2]
  11.     if n==8: # т.к. через 8 нельзя проходить приравниваем эту ячейку 0 ОБЯЗАТЕЛЬНО условие ставим в конце кода
  12.         a[n]=0
  13.     if n==6: # т.к. через 6 нельзя перелетать, обнуляем предыдущие значения в массиве, чтобы они не влияли
  14.         for j in range(1,6):
  15.             a[j]=0
  16. print(a(20))
  17.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement