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?
Ответ
5 (2 оценки)
1
Fedy16 2 года назад
Светило науки - 290 ответов - 0 раз оказано помощи

Ответ:

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))

Остались вопросы?