Вопрос:

Напишите программу, содержащую не более 4 команд, которая преобразует число 7 в число 22. Укажите лишь номера команд.

Смотреть решения всех заданий с листа

Ответ:

Пошаговое решение:

Нам нужно из числа 7 получить число 22, используя команды «вычти 1» (1) и «умножь на 2» (2). Попробуем составить программу из 4 команд:

  1. Умножаем 7 на 2: \(7 \times 2 = 14\) (команда 2)
  2. Умножаем 14 на 2: \(14 \times 2 = 28\) (команда 2)
  3. Вычитаем 1 из 28: \(28 - 1 = 27\) (команда 1)
  4. Вычитаем 1 из 27: \(27 - 1 = 26\) (команда 1)

Этот вариант не подходит, так как мы получаем 26, а нужно 22.

  1. Вычитаем 1 из 7: \(7 - 1 = 6\) (команда 1)
  2. Умножаем 6 на 2: \(6 \times 2 = 12\) (команда 2)
  3. Умножаем 12 на 2: \(12 \times 2 = 24\) (команда 2)
  4. Вычитаем 1 из 24: \(24 - 1 = 23\) (команда 1)

Этот вариант тоже не подходит.

  1. Умножаем 7 на 2: \(7 \times 2 = 14\) (команда 2)
  2. Вычитаем 1 из 14: \(14 - 1 = 13\) (команда 1)
  3. Умножаем 13 на 2: \(13 \times 2 = 26\) (команда 2)
  4. Вычитаем 1 из 26: \(26 - 1 = 25\) (команда 1)

Этот вариант тоже не подходит.

  1. Умножаем 7 на 2: \(7 \times 2 = 14\) (команда 2)
  2. Вычитаем 1 из 14: \(14 - 1 = 13\) (команда 1)
  3. Вычитаем 1 из 13: \(13 - 1 = 12\) (команда 1)
  4. Умножаем 12 на 2: \(12 \times 2 = 24\) (команда 2)
  5. Вычитаем 1 из 24: \(24 - 1 = 23\) (команда 1)
  6. Вычитаем 1 из 23: \(23 - 1 = 22\) (команда 1)

Значит, нам нужно больше 4 команд. Попробуем вот такой вариант:

  1. Умножаем 7 на 2: \(7 \times 2 = 14\) (команда 2)
  2. Вычитаем 1 из 14: \(14 - 1 = 13\) (команда 1)
  3. Умножаем 13 на 2: \(13 \times 2 = 26\) (команда 2)
  4. Вычитаем 1 из 26: \(26 - 1 = 25\) (команда 1)
  5. Вычитаем 1 из 25: \(25 - 1 = 24\) (команда 1)
  6. Вычитаем 1 из 24: \(24 - 1 = 23\) (команда 1)
  7. Вычитаем 1 из 23: \(23 - 1 = 22\) (команда 1)

Сократим количество команд до 4. Нам нужно:

  1. Вычесть 1 (команда 1)
  2. Умножить на 2 (команда 2)
  3. Умножить на 2 (команда 2)

Тогда получим \((7-1) \times 2 \times 2 = 6 \times 4 = 24\). Потом надо вычесть 2, чтобы получить 22, т.е. вычесть 1 два раза (команда 1, команда 1).

Итого: 122111 дает 22, но нам нужно не более 4 команд. Тогда действуем так:

  1. Умножаем 7 на 2: \(7 \times 2 = 14\) (команда 2)
  2. Умножаем 14 на 2: \(14 \times 2 = 28\) (команда 2)
  3. Вычитаем 1 из 28: \(28 - 1 = 27\) (команда 1)
  4. Вычитаем 1 из 27: \(27 - 1 = 26\) (команда 1)
  5. Вычитаем 1 из 26: \(26 - 1 = 25\) (команда 1)
  6. Вычитаем 1 из 25: \(25 - 1 = 24\) (команда 1)

Потом вычтем 2, чтобы получить 22, т.е. 11

Но можно и по-другому:

  1. Вычитаем 1 из 7: \(7 - 1 = 6\) (команда 1)
  2. Умножаем 6 на 2: \(6 \times 2 = 12\) (команда 2)
  3. Умножаем 12 на 2: \(12 \times 2 = 24\) (команда 2)
  4. Вычитаем 1 из 24: \(24 - 1 = 23\) (команда 1)
  5. Вычитаем 1 из 23: \(23 - 1 = 22\) (команда 1)

Тогда нужная нам программа: 12211. Перепишем ее в четыре команды: 1221.

Проверим: \((7-1) \times 2 \times 2 - 1 = 23\)

Не подходит.

А вот так:

  1. Умножаем 7 на 2: \(7 \times 2 = 14\) (команда 2)
  2. Умножаем 14 на 2: \(14 \times 2 = 28\) (команда 2)
  3. Вычитаем 1 из 28: \(28 - 1 = 27\) (команда 1)
  4. Вычитаем 1 из 27: \(27 - 1 = 26\) (команда 1)
  5. Вычитаем 1 из 26: \(26 - 1 = 25\) (команда 1)
  6. Вычитаем 1 из 25: \(25 - 1 = 24\) (команда 1)

Надо вычесть 6, то есть \(24-6=18\). Не то.

Попробуем еще:

  1. Вычитаем 1 из 7 (команда 1): \(7-1=6\)
  2. Умножаем 6 на 2 (команда 2): \(6 \times 2 = 12\)
  3. Вычитаем 1 (команда 1): \(12-1=11\)
  4. Умножаем 11 на 2 (команда 2): \(11 \times 2 = 22\)

Программа: 1212

Ответ: 1212

ГДЗ по фото 📸