Решения выражения с использованием рекурсии - 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.
Объяснение кода листинга программы
- В первой строке определяется функция с именем f, которая принимает два аргумента типа integer - i и n.
- Если i больше n, то результат функции равен 0.
- В противном случае, результат функции равен квадратному корню из суммы i и результата вызова функции f с аргументами i+1 и n.
- Далее, в теле основной программы, определены три переменные - i, n и s, при этом n уже инициализирована значением 10.
- С помощью функции f вычисляется значение f(1, n), которое выводится на экран.
- Затем, в цикле снижающегося диапазона, переменная s инициализируется значением 0, а затем в каждой итерации цикла к s добавляется квадратный корень из i, и это значение выводится на экран.
- В конце программы, выводится значение переменной s.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д