Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Рекурсивная функция для нахождения n-ого члена последовательности

24K
14 января 2007 года
aliu
2 / / 14.01.2007
Нужно написать рекурсную функцию для нахождения n-ого члена последовательности:
 
Код:
[SIZE="5"]a[/SIZE][SIZE="1"]1[/SIZE] = [SIZE="5"]1[/SIZE]
[SIZE="5"]a[/SIZE][SIZE="1"]2n[/SIZE] = [SIZE="5"]a[/SIZE][SIZE="1"]n[/SIZE]
[SIZE="5"]a[/SIZE][SIZE="1"]2n+1[/SIZE] = [SIZE="5"]a[/SIZE][SIZE="1"]n[/SIZE] + [SIZE="5"]a[/SIZE][SIZE="1"]n+1[/SIZE]


Я нашел для вот такой последовательности:
 
Код:
[SIZE="5"]a[/SIZE][SIZE="1"]1[/SIZE] = [SIZE="5"]x[/SIZE]
[SIZE="5"]a[/SIZE][SIZE="1"]2[/SIZE] = [SIZE="5"]y[/SIZE]
[SIZE="5"]a[/SIZE][SIZE="1"]n[/SIZE] = [SIZE="5"]a[/SIZE][SIZE="1"]n-1[/SIZE] + [SIZE="5"]a[/SIZE][SIZE="1"]n-2[/SIZE]


Следующую ф-ию:
Код:
function narys (n, x, y: integer): integer;
   function nar (n: integer): integer;
   begin
      if n = 1
         then nar := x
         else if n = 2
             then nar := y
             else nar := nar(n-1, x, y) + nar(n-2, x, y)
   end;
begin
   narys := nar(n)
end;


Помогитеееее лююююдиии, зашиваюсь по полной, время вобрез :cry:
622
14 января 2007 года
nilbog
507 / / 19.12.2006
вот такая функция
- просто дословно переписал условие
эх люблю рекурсию :)
 
Код:
function f(n:integer):integer;
begin
if n=1 then f:=1 else
 if not odd(n) then f:=f(n div 2)
  else f:=f(n div 2)+f(n div 2 + 1);{я не делал тут экономию как при рекурсивном счете чисел фибоначи разные случаи обработки чет/нечет}
end;
24K
14 января 2007 года
aliu
2 / / 14.01.2007
:) :) Огромное спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!:) :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог