Рекурсия: сколько есть программ, которые преобразуют заданное число (по определенному алгоритму) в 24? - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста с решение задачи, я не понимаю как решать рекурсией У исполнителя калькулятора две команды 1) прибавить 1 2) увеличить каждый разряд числа на 1 Например число 23 с помощью команды 2 превратится в 34. Если перед выполнением команды 2 какой-либо цифра равна 9, она не изменяется. Сколько есть программ, которые преобразует числа 24 в число 46? Суть всей программы в том, что мне нужно сделать ее рекурсией и чтобы она проверяла все цифры от (0..999) а не от 24 если не трудно, то с комментарием) Заранее спасибо

Решение задачи: «Рекурсия: сколько есть программ, которые преобразуют заданное число (по определенному алгоритму) в 24?»

textual
Листинг программы
  1. var
  2.   count : integer = 0;
  3.   finish : integer = 46;
  4.  
  5. procedure f(n : integer);
  6. begin
  7.   if n = finish then inc(count)
  8.   else if n < finish then
  9.   begin
  10.     f(n + 1);
  11.     if n < 10 then f(n + 1) // 1 .. 9
  12.     else f((1 + n div 10) * 10 + (1 + n mod 10)); // 10 .. 45
  13.   end;
  14. end;
  15.  
  16. var start : integer;
  17. begin
  18.   write('Начинаем с: '); readln(start);
  19.   f(start); // начинаем с введенного числа. Заканчиваем числом 46
  20.   writeln(count);
  21. end.

Объяснение кода листинга программы

  1. Объявлены две переменные: count типа integer со значением 0 и finish типа integer со значением 46.
  2. Определена процедура f с параметром n типа integer.
  3. В начале процедуры f выполняется проверка: если n равно finish, то значение переменной count увеличивается на 1.
  4. Если n меньше finish, то процедура f вызывается рекурсивно для значения n + 1.
  5. Если n меньше 10, то процедура f вызывается рекурсивно для значения n + 1.
  6. Если n больше или равно 10, то n приводится к виду 10 * (1 + (n div 10)) + (1 + n mod 10).
  7. Затем вызывается процедура f с введенным значением переменной start.
  8. В конце выводится значение переменной count.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы