Форум » Выполнение и анализ алгоритмов для исполнителей » B2, не понимаю, в чем ошибка? » Ответить

B2, не понимаю, в чем ошибка?

shkip: Некоторый исполнитель может выполнить только две команды: к числу прибавить 1, число умножить на 2. Укажите минимальное количество команд, которые должен выполнить исполнитель, чтобы из числа 21 получить число 813. Получилось 14, в ответе - 12.

Ответов - 6

Поляков: shkip пишет: Получилось 14, в ответе - 12. Ответ правильный. Показывайте, как решали. Лучше идти с конца.

shkip: если честно, грамотного решения привести не могу, но нашел свою ошибку путем перебора. Вот что получилось: 21+1+1+1+1=25; 25*2*2=100; 100+1=101; 101*2=202; 202+1=203; 203*2*2=812; 812+1=813. 12 команд. Ошибку допустил только лишь из-за своей невнимательности. На листке я пересчитал два лишних действия.

проол: shkip пишет: нашел свою ошибку путем перебора. Это очень неудачный способ. Прислушайтесь к совету Ю. К. Полякова. Используйте команды: 1) ВЫЧЕСТЬ ОДИН 2) РАЗДЕЛИТЬ НА ДВА. Начните их применять к результату (числу 813). Попытайтесь получить начальное число (21). И ПРАВИЛЬНО запишите последовательность ИСХОДНЫХ команд в ответе


oval: проол пишет: Начните их применять к результату т.к не все числа делятся на 2, а умножаются на 2 все числа

проол: oval пишет: т.к не все числа делятся на 2, а умножаются на 2 все числа И именно к тем числам, которые не делятся на 2 ПРИДЕТСЯ применять команду ВЫЧЕСТЬ один! Т. е. сам процесс подсказывает действия...

shkip: хм, я, вроде бы, так и делал, только команды написал наоборот для удобности в рассмотрении их. А так всегда стараюсь делать такие виды заданий от конца и деревом. P.S. Конечно же зря написал слово "перебор".



полная версия страницы