Решения выражения с использованием рекурсии - PascalABC.NET

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

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

Задано положительное число n. Как будет выглядеть код без рекурсивной функции и с ней, подскажет кто нибудь?

Решение задачи: «Решения выражения с использованием рекурсии»

textual
Листинг программы
function f(i, n : integer) : real; // рекурсия
begin
  if i > n then result:= 0
  else f := sqrt(i + f(i + 1, n));
end;
 
var 
  i, n : integer;
  s : real;
begin
  n := 10;
  writeln(f(1, n)); // вызов рекурсии
  
  // итерация
  s := 0;
  for i := n downto 1 do
    s := sqrt(i + s);
  writeln(s);
end.

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

  1. В первой строке определяется функция с именем f, которая принимает два аргумента типа integer - i и n.
  2. Если i больше n, то результат функции равен 0.
  3. В противном случае, результат функции равен квадратному корню из суммы i и результата вызова функции f с аргументами i+1 и n.
  4. Далее, в теле основной программы, определены три переменные - i, n и s, при этом n уже инициализирована значением 10.
  5. С помощью функции f вычисляется значение f(1, n), которое выводится на экран.
  6. Затем, в цикле снижающегося диапазона, переменная s инициализируется значением 0, а затем в каждой итерации цикла к s добавляется квадратный корень из i, и это значение выводится на экран.
  7. В конце программы, выводится значение переменной s.

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


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

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

7   голосов , оценка 3.857 из 5
Похожие ответы