На Python и на C++! Калькулятор
Имеется калькулятор, который выполняет три операции:
прибавить к числу X единицу;
умножить число X на 2;
умножить число X на 3.
Определите, какое наименьшее число операций необходимо для того, чтобы получить из числа 1 заданное число N.
Входные данные
Программа получает на вход одно число, не превосходящее 106.
Выходные данные
Требуется вывести одно число: наименьшее количество искомых операций.
Примеры
Ввод
32718
Вывод
17
Answers & Comments
Ответ:
massiv=[]
def recursion(number,count,way):
global massiv
if number<count and len(way)<100:
recursion(number+1,count,way+"1")
recursion(number*2,count,way+"2")
recursion(number*3,count,way+"3")
else:
if number==count:
if len(way) not in massiv:
massiv.append(len(way))
return
recursion(1,25,"")
print(min(massiv))
Такие большие числа, что вы в примере указали, считать долго будет