Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #кол-во способов перейти из 1 в 20
- #+1, +2, *2
- #обязательно проходя через 6, запрещено проходить через 8
- a = [0] * 100 # обязательно массив должен быть больше искомой длины
- a[1] = 1 # заполняем начальную ячейку известным значением
- for n in range(2, 21):
- if n % 2 == 0: # если число четное кидаем в него сумму из 3 предыдуших значений массива
- a[n] = a[n - 1] + a[n-2] + a[n // 2]
- else: # иначе только из предыдущей и n-2
- a[n] = a[n - 1] + a[n-2]
- if n==8: # т.к. через 8 нельзя проходить приравниваем эту ячейку 0 ОБЯЗАТЕЛЬНО условие ставим в конце кода
- a[n]=0
- if n==6: # т.к. через 6 нельзя перелетать, обнуляем предыдущие значения в массиве, чтобы они не влияли
- for j in range(1,6):
- a[j]=0
- print(a(20))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement