Исполнитель Увеличитель345 преобразует число, записанное на экране. У исполнителя

Исполнитель Увеличитель345 преобразует число, записанное на экране. У исполнителя три команды, которым присвоены номера: 1. Прибавь 3 2. Прибавь 4 3. Прибавь 5 Первая из них увеличивает число на экране на 3, вторая увеличивает это число на 4, а третья – на 5. Программа для исполнителя Увеличитель345 – это последовательность команд. Определите, сколько существует программ, преобразующих число 22 в число 80. Задачу можно решать как с помощью электронной таблицы, так и путем составления программы.
Гость
Ответ(ы) на вопрос:
Гость
//Ruby 22 def factorial(n)     f = 1;     for i in 1..n; f *= i; end;     f end n=0 for i in 0..80/3     for j in 0..80/4         for k in 0..80/5             if 22+3*i+4*j+5*k==80                 nn = factorial(i+j+k)/factorial(i)/factorial(j)/factorial(k)                 n+=nn                 p [i,j,k]             end         end     end end p n Как работает программа: Сначала мы находим способы получить из 22 число 80. Для удобства шаги мы упорядочеваем: сначала прибавляем тройки, потом четверки, потом пятерки. Ищем все возможные наборы (i, j, k) которые отвечают равенству 22 + 3i + 4j + 5k = 80. Для каждого такого набора высчитываем кол-во перестановок с повторениями и суммируем их.  Ответ 3174448
Не нашли ответ?
Ответить на вопрос
Похожие вопросы