![]() |
Модераторы: Alx, Fixin |
![]() ![]() ![]() |
|
Гость_Клим |
|
|||
Unregistered |
Ребят, помогите! Задачка на олимпиаде:
Задача 2. Функция Аккермана I Известно, что функция Аккермана A(m,n) определена для всех неотрицательных чисел m и n следующим образом: A(0,n)=n+1 (при n>= 0) A(m,0)=A(m-1,1)(при m>0) A(m,n)=A(m-1,A(m,n-1)) (при m,n>0) Вычислите значения A(1,1) и A(2,0) используя рекурсию. ================== Эту задачу я сделал, вот прога: program chick; uses Crt; var a,k,m,n:integer; function akerman(m,n:integer) :integer; begin if (n>=0) and (m=0) then akerman:=n+1; if (n=0) and (m>0) then akerman:=akerman(m-1,1); if (m>0) and (n>0) then akerman:=akerman(m-1,akerman(m,n-1)); end; BEGIN Clrscr;writeln('Vvedite m i n'); readln(m); readln(n); a:=akerman(m,n); writeln(a); readln; end. ====================== Но следующая задача вытекает из предыдущей: надо сделать тоже самое но без рекурсии! Задача3. Функция Аккермана II Функция Аккермана определяется, как описано в Задаче 2. Напишите неркурсивный алгоримт вычисления по заданным m и n значения функции Аккермана A(m,n) Нерекурсивным является алгоритм, в описании которого не используется напрямую или косвенно он сам. Я че-то не догоняю! ![]() |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Интересные и занимательные задачи по программированию | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |