1_У исполнителя Калькулятор две команды, которым присвоены номера:
1. прибавь 2
2. умножь на 2
Сколько есть программ, которые число 2 преобразуют в число 40?
...
2_У исполнителя Калькулятор две команды, которым присвоены номера:
1. прибавь 3
2. умножь на 2
Сколько есть программ, которые число 3 преобразуют в число 42?
...
3_У исполнителя Калькулятор две команды, которым присвоены номера:
1. прибавь 1
2. прибавь 3
Сколько есть программ, которые число 1 преобразуют в число 15?
...
4_
У исполнителя Калькулятор две команды, которым присвоены номера:
1. прибавь 1
2. прибавь 3
Сколько есть программ, которые число 7 преобразуют в число 20?
...
5_У исполнителя Калькулятор три команды, которым присвоены номера:
1. прибавь 1
2. умножь на 2
3. умножь на 3
Сколько есть программ, которые число 1 преобразуют в число 14?
Answers & Comments
Ответ:
1. 195
2. 26
3. 129
4. 88
5. 48
Python:
def f1(start, x):
if start == x: return 1
if start > x: return 0
return f1(start + 1, x) + f1(start * 2, x)
print('1.', f1(2, 40))
def f2(start, x):
if start == x: return 1
if start > x: return 0
return f2(start + 3, x) + f2(start * 2, x)
print('2.', f2(3, 42))
def f3(start, x):
if start == x: return 1
if start > x: return 0
return f3(start + 1, x) + f3(start + 3, x)
print('3.', f3(1, 15))
def f4(start, x):
if start == x: return 1
if start > x: return 0
return f4(start + 1, x) + f4(start + 3, x)
print('4.', f4(7, 20))
def f5(start, x):
if start == x: return 1
if start > x: return 0
return f5(start + 1, x) + f5(start * 2, x) + f5(start * 3, x)
print('5.', f5(1, 14))