Присоединиться

11 класс·средний уровень

Сколько существует программ, которые преобразуют исходное число 3 в

Условие

Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера.1. Прибавить 1.2. Умножить на 2.3. Прибавить 3.Первая команда увеличивает число на экране на 1, вторая умножает его на 2, третья увеличивает на 3.Программа для исполнителя — это последовательность команд. Например, если в начальный момент на экране находится число 1, то программа 312 последовательно преобразует его в 4, 5, 10. Сколько существует программ, которые преобразуют исходное число 3 в число 22 и при этом траектория вычислений содержит число 10 и не содержит чисел 13 и 17?Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 312 при исходном числе 1 траектория будет состоять из чисел 4, 5, 10.

Ответ

Ответ и полный разбор откроются после входа

Посмотреть ответ

Решение по шагам

  1. Как рассуждать

    Решение. Приведем решение на языке Python. def fn(x, y, sp=[]): if x >= y: return 1 if x == y and 10 in sp and 13 not in sp and 17 not in sp else 0 return fn(x+1, y, sp+[x+1]) + fn(x2, y, sp+[x2]) + fn(x+3, y, sp+[x+3])print(fn(3, 22, [3]))

Осталось ещё 1 шаг

  1. Приведем другое решение на языке Python. def…

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Оператор присваивания и ветвления. Перебор вариантов»