PROCEDURE fib( n: Nat ): Nat DEBUT A <- new Nat[0:n] POUR i <- 0 A n FAIRE A[i] <- PAS DEFINI // Valeur speciale (par ex., -1) ne pouvant pas etre un resultat FIN RETOURNER fib'( n, A ) FIN PROCEDURE fib'( n: Nat, A: ARRAY[*] OF Nat ): Nat DEBUT SI A[n] != PAS DEFINI ALORS // L'appel fib(n) a deja ete calcule. RETOURNER A[n] FIN // Premier appel a fib(n). SI n == 0 || n == 1 ALORS r <- 1 SINON r1 <- fib'( n-1, A ) r2 <- fib'( n-2, A ) r <- r1 + r2 FIN A[n] <- r RETOURNER r FIN