воскресенье, 21 декабря 2008

Скажите, позж, как написать прогу, которая выведет наименьшее число команд, которые нужны для получения из числа a число b. например из числа 3 число 57 причем команды только две: +3 и /4
@темы:
Точка зрения,
Программрование
читаете книгу, включаете комп, и все это желательно до того как началась сессия :-)
Вася, решая задачи демо-версии ЕГЭ, дошел до задачи B5, которая звучит так. "У исполнителя Калькулятор две команды:
1) прибавь 3
2) умножь на 4
Выполняя первую из них, Калькулятор прибавляет к числу на экране 3, а выполняя вторую, умножает его на 4."
Далее в задаче требовалось получить из числа 3 число 57 не более, чем за 6 команд. Однако Вася заинтересовался, как можно для произвольных чисел a и b построить программу наименьшей длины получения числа b из числа a.
Напишите программу, которая по заданным числам a и b вычислит наименьшее количество команд Калькулятора, которое нужно, чтобы получить из a число b.
Формат входных данных
Вводятся два натуральных числа, не превышающих 1000 - a и b.
Формат выходных данных
Выведите наименьшее число команд, которое нужно, чтобы получить из a число b. Если число b получить нельзя, выведите -1 (минус 1).