На Python и на C++! Калькулятор Имеется калькулятор, который выполняет три операции:

прибавить к числу X единицу;

умножить число X на 2;

умножить число X на 3.

Определите, какое наименьшее число операций необходимо для того, чтобы получить из числа 1 заданное число N.

Входные данные

Программа получает на вход одно число, не превосходящее 106.

Выходные данные

Требуется вывести одно число: наименьшее количество искомых операций.

Примеры

Ввод

32718

Вывод

17

hollyananas hollyananas    3   15.06.2021 17:43    94

Ответы
Наркодилер Наркодилер  15.07.2021 17:44

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

Такие большие числа, что вы в примере указали, считать долго будет

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика