Исполнитель Щелчок преобразует число на экране. У исполнителя есть две команды:
1. Приписать 0 справа (1 10)
2. Приписать копию числа задом наперед справа (10 1001)
Программа для исполнителя — это последовательность команд.
Сколько существует различных программ, которые переводят 7 в десятиразрядное число.
Решение 1 (Рекурсия)
def f(st):
global count
if len(st) == 10:
count += 1
print(st)
if len(st) < 10:
f(st + "0") # приписать 0 справа
f(st + st[::-1]) # приписать копию числа справа
count = 0
f("7")
print(count)
Решение 2 (Динамика)
ans = []
otv = 0
ans.append("7")
for operations in range(1000):
can_get = []
for i in ans:
if len(i) == 10:
otv += 1
new_st = i + "0"
if len(new_st) <= 10:
can_get.append(new_st)
new_st = i + i[::-1]
if len(new_st) <= 10:
can_get.append(new_st)
if len(can_get) == 0:
break
ans = can_get
print(otv)