[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]
Рекурсивная функция для нахождения n-ого члена последовательности
Код:
Я нашел для вот такой последовательности:
Код:
[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]
[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;
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:
- просто дословно переписал условие
эх люблю рекурсию :)
Код:
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;
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;
:) :) Огромное спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!:) :)