Вопрос:

7. У исполнителя Калькулятор две команды, которым присвоены номера: 1. прибавь 2 2. умножь на 3 Выполняя первую из них, Калькулятор прибавляет к числу на экране 2, а выполняя вторую, утраивает его. Запишите порядок команд в программе получения из 0 числа 28, содержащей не более 6 команд, указывая лишь номера команд. Например, программа 21211 — это программа: умножь на 3 прибавь 2 умножь на 3 прибавь 2 прибавь 2 которая преобразует число 1 в 19.

Ответ:

Решение:

Наша цель — получить число 28, начиная с 0, используя не более 6 команд. Команды: 1 (прибавь 2) и 2 (умножь на 3).

Рассмотрим возможные варианты, работая в обратном порядке от 28:

  • Если последнее действие было «умножь на 3», то предыдущее число было 28/3 (не целое).
  • Если последнее действие было «прибавь 2», то предыдущее число было 28 - 2 = 26.

Продолжаем работать с 26:

  • Если последнее действие было «умножь на 3», то предыдущее число было 26/3 (не целое).
  • Если последнее действие было «прибавь 2», то предыдущее число было 26 - 2 = 24.

Продолжаем работать с 24:

  • Если последнее действие было «умножь на 3», то предыдущее число было 24/3 = 8.
  • Если последнее действие было «прибавь 2», то предыдущее число было 24 - 2 = 22.

Продолжаем работать с 8 (нам нужно получить 0, поэтому будем идти к 0):

  • Если последнее действие было «умножь на 3», то предыдущее число было 8/3 (не целое).
  • Если последнее действие было «прибавь 2», то предыдущее число было 8 - 2 = 6.

Продолжаем работать с 6:

  • Если последнее действие было «умножь на 3», то предыдущее число было 6/3 = 2.
  • Если последнее действие было «прибавь 2», то предыдущее число было 6 - 2 = 4.

Продолжаем работать с 2:

  • Если последнее действие было «умножь на 3», то предыдущее число было 2/3 (не целое).
  • Если последнее действие было «прибавь 2», то предыдущее число было 2 - 2 = 0.

Итак, мы нашли последовательность действий в обратном порядке: 0 → 2 → 6 → 8 → 24 → 26 → 28.

Переводим её в номера команд:

  • 0 + 2 = 2 (команда 1)
  • 2 * 3 = 6 (команда 2)
  • 6 + 2 = 8 (команда 1)
  • 8 + 2 = 10 (команда 1) - здесь ошибка, нам нужно 24. Вернёмся к 8.

Попробуем иначе, идём от 0 к 28:

  • 0 + 2 = 2 (1)
  • 2 + 2 = 4 (1)
  • 4 + 2 = 6 (1)
  • 6 + 2 = 8 (1)
  • 8 + 2 = 10 (1)
  • 10 + 2 = 12 (1) ... не подходит

Попробуем умножение:

  • 0 + 2 = 2 (1)
  • 2 * 3 = 6 (2)
  • 6 + 2 = 8 (1)
  • 8 * 3 = 24 (2)
  • 24 + 2 = 26 (1)
  • 26 + 2 = 28 (1)

Получили программу: 121211. Это 6 команд.

Проверим:

  • 0 + 2 = 2
  • 2 * 3 = 6
  • 6 + 2 = 8
  • 8 * 3 = 24
  • 24 + 2 = 26
  • 26 + 2 = 28

Ответ: 121211

Подать жалобу Правообладателю

Похожие