Vraagstelling x_0=0 x_1=1 x_i=x_i-1 + x_i-2 // i>=2 Strategie Hier de oplossing zonder sentinel Formele probleemspecificatie pre: n>=0 post: (x < 2 -> Fib = n) ^ (x >=2 -> Fib=x_n) * Eindrelatie R: Fib=x_n * Invariant Fib=x_p ^ EenDaarvoor = x_p-1 ^ TweeDaarvoor = x_p-2 ^ 2<=p<=n * Stopcriterium p!=n Initialisatie int p=2; Fib=1; EenDaarvoor = 1; TweeDaarvoor = 0; Stap richting stopcriterium p++; Actie herstel invariant I(p-1): Fib=x_p-1 ^ EenDaarvoor = x_p-2 ^ TweeDaarvoor = x_p-3 TweeDaarvoor = EenDaarvoor; EenDaarvoor = Fib; Fib = EenDaarvoor + TweeDaarvoor; Algoritme public int Fibonacci(int n){ if(n<2){ Fib=n; } else{ int p=2; Fib=1; EenDaarvoor = 1; TweeDaarvoor = 0; while(p!=n){ TweeDaarvoor = EenDaarvoor; EenDaarvoor = Fib; Fib = EenDaarvoor + TweeDaarvoor; } return Fib; } }