При решении задачи столкнулся с вопросом.
Почему в первом случае возникает ошибка, в то время как во втором её нет.
Python же проверяет сначала первое условие, если оно не выполняет и стоит and, то дальше он проверять не будет?
a = set()
def f(curr, step):
if step == 8 and 1000<=curr<=1024:
a.add(curr)
else:
f(curr+1, step+1)
f(curr+5, step+1)
f(3*curr, step+1)
f(1,0)
print(len(a))
Хотя здесь ошибки нет.
a = set()
def f(curr, step):
if step == 8:
if 1000<=curr<=1024:
a.add(curr)
else:
f(curr+1, step+1)
f(curr+5, step+1)
f(3*curr, step+1)
f(1,0)
print(len(a))