Определить, сколько возможно построить различных программ для исполнителя, которые преобразуют число х в у - Pascal
Формулировка задачи:
У некоторого исполнителя, обрабатывающего числа, есть три команды: +1, +2, *3. Исполнитель получает на вход некоторое число и программу, представляющую собой некоторую последовательность вышеназванных команд. На выходе он выдает новое число - результат применения программы к исходному числу. Вам предлагается написать программу - анализатор данного исполнителя. На вход программе подаются два числа х и у, каждое из которых лежит в диапазоне от 0 до 200 (включая границы) и при этом гарантируется, что х меньше, либо равно у. Ваша программа должна подсчитать, сколько возможно построить различных программ для исполнителя, которые преобразуют число х в у. В качестве ответа нужно вывести одно целое число.
Буду рад оперативной помощи, заранее спасибо!
Решение задачи: «Определить, сколько возможно построить различных программ для исполнителя, которые преобразуют число х в у»
textual
Листинг программы
- var x,y,vars:integer;
- procedure FindVariants(A, B : Integer);
- begin
- if A > B then Exit
- else if A = B then Inc(vars)
- else begin
- FindVariants(A +1, B);
- FindVariants(A +2, B);
- FindVariants(A *3, B);
- end;
- end;
- begin
- vars := 0;
- readln(x,y);
- FindVariants(X, Y);
- WriteLn(vars);
- end.
Объяснение кода листинга программы
- Переменные
x
,y
иvars
объявлены как целочисленные типы данных. - Функция
FindVariants
принимает два целочисленных аргументаA
иB
. - Внутри функции
FindVariants
выполняется проверка условияA > B
. Если это условие истинно, то функция завершается. - Если условие
A > B
ложно, то проверяется условиеA = B
. Если оно истинно, то значение переменнойvars
увеличивается на единицу. - Если условие
A = B
ложно, то вызываются рекурсивно три раза функцииFindVariants
, передавая в качестве аргументовA + 1
,A + 2
иA * 3
. - В основной части программы считываются значения переменных
x
иy
с помощью функцииreadln
. - Затем вызывается функция
FindVariants
с аргументамиx
иy
. - Значение переменной
vars
выводится на экран с помощью функцииWriteLn
. - Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д