Написать рекурсивную функцию для вычисления квадрата натурального числа - Pascal
Формулировка задачи:
можете написать всю программу с объяснениями. Написать рекурсивную функцию для вычисления квадрата натурального числа, если известно, что (n+1)^2=n^2+2*n+1 и 1^2=1.
Решение задачи: «Написать рекурсивную функцию для вычисления квадрата натурального числа»
textual
Листинг программы
function Pow(const n: Integer): Extended;
var
Result: Extended;
begin
if (n < 2)
then
Result := 1
else
Result := 2 * n + Pow(n - 1) - 1;
Pow := Result;
end;
var
n: Word;
begin
Write('Input n: '); ReadLn(n);
Write('Sqr(', n, ')=', Pow(n):0:0);
end.
Объяснение кода листинга программы
- Создается рекурсивная функция с названием
Powи параметромnтипа Integer, которая возвращает значение типаExtended. - Объявляется переменная
ResultтипаExtended. - Если значение параметра
nменьше 2, то переменнойResultприсваивается значение 1. - В противном случае, переменной
Resultприсваивается значение выражения2 * n + Pow(n - 1) - 1. - Функция возвращает значение
Result. - В блоке
begin/endобъявляется переменнаяnтипаWord. - Пользователю предлагается ввести значение для переменной
nс помощью функцииWriteиReadLn. - Выполняется вывод результата вычисления квадрата натурального числа
nс помощью функцииSqrиPowс заданным форматированием.