Pascal: рекурсия

Задача 1.

Использовать рекурсию для нахождения цифрового корня целого числа.

Цифровой корень находится суммой через сумму цифр числа до тех пор, пока эта сумма сама не станет цифрой. Например, для числа 9999999 цифровой корень находится так:

9+9+9+9+9+9+9 = 63;
6+3 = 9.

Цифровой корень 9999999 равен девяти.

Переменные:

а) в функции num:

n – целое число (глобальная переменная);
s – вспомогательная переменная (локальная переменная);

б) в функции root:

n – целое число (глобальная переменная);

в) в основной программе:

n – целое число (глобальная переменная).

Алгоритм решения задачи:

  1. создаем описание функций num и root;
  2. вводим целое число n;
  3. вызываем рекурсивную функцию root и определяем цифровой корень числа n;
  4. завершаем работу программы.
var n:longint;
function num(i:longint):integer;
 var  s: integer;
begin
  s:=0;
  repeat
    s:=s+n mod 10;
    n:= n div 10;
 until n=0;
 num:=s;
end;
function root(l:longint):integer;
begin
   if n<10 then root:=n
      else
        begin
        n:=num(n);
        root:=root(n);
        end;
end;

begin
  write('Введите целое число n=');
  readln(n);
  writeln('Его цифровой корень равен : ', root(n));
end.

Задача 2.

Напишите рекурсивную программу вычисления суммы .

var n : integer;
function sum(i : integer) : real;
begin
    if i=1 then sum:=0 else sum:=sum(i–1)+i*i+i+5;
end;

begin
writeln('Введите n');
readln(n);
writeln('Значение суммы равно – ', sum(n));
end.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *