Задача 1.
Использовать рекурсию для нахождения цифрового корня целого числа.
Цифровой корень находится суммой через сумму цифр числа до тех пор, пока эта сумма сама не станет цифрой. Например, для числа 9999999 цифровой корень находится так:
9+9+9+9+9+9+9 = 63;
6+3 = 9.
Цифровой корень 9999999 равен девяти.
Переменные:
а) в функции num:
n – целое число (глобальная переменная);
s – вспомогательная переменная (локальная переменная);
б) в функции root:
n – целое число (глобальная переменная);
в) в основной программе:
n – целое число (глобальная переменная).
Алгоритм решения задачи:
- создаем описание функций num и root;
- вводим целое число n;
- вызываем рекурсивную функцию root и определяем цифровой корень числа n;
- завершаем работу программы.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
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.
Напишите рекурсивную программу вычисления суммы .
1 2 3 4 5 6 7 8 9 10 11 |
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. |