|
9.6 Recursão
Program TEST_REC;
Var
X,Y:integer;
Function MDC
(P1, P2: integer): integer;
Begin
If
P2 = 0 Then
MDC: = P1
Else
MDC: = MDC (P2, P1 mod P2);
End;
{de MDC }
Function FAT
(N: integer): integer;
Begin
If N>0
Then
FAT: = 1
End;
{ de FAT }
X:= MDC(25,5);
Y:= FAT(5);
End. {de TEST_REC} |
Program FIBONACCI;
{fornece o termo da série dada sua
ordem}
Var
ORDEM: integer;
Function FIB
(N: integer): integer;
Begin
If
N>1 Then
FIB: = FIB (N – 1) +
FIB (N – 1 )
Else
If
N = 1 Then
FIB:
= 1
Else
FIB:
= 0;
End; { de FIB
}
Begin { de Principal
}
Writeln (‘entre com a ordem’);
Readln ( ORDEM );
Writeln (‘o numero é’, FIB(ORDEM));
End. { de FIBONACCI
}
|
Uma solução não recursiva
para Fibonacci é a seguinte (repare como a solução
recursiva é muito mais elegante):
Program FIBONACCI;
Var
PROX, TERM1, TERM2, I, N: integer;
Begin
Read ( N );
PROX: = 1;
TERM1: = 1;
TERM2: = 0;
For I:
= 1 to N do
Begin
Writeln (PROX);
PROX: = TERM1 + TERM2;
TERM2: = TERM1;
TERM1: = PROX;
End
End. { de FIBONACCI
} |
|