_DEFINE F AS _UNSIGNED _INTEGER64 CLS PRINT PRINT "Enter 40 to more easily see the difference in calculation speeds." PRINT INPUT "Enter n for Fibonacci(n): ", n PRINT PRINT " Analytic Method (Fastest): F("; LTRIM$(STR$(n)); ") ="; fA(n) PRINT "Iterative Method (Fast): F("; LTRIM$(STR$(n)); ") ="; fI(n) PRINT "Recursive Method (Slow): F("; LTRIM$(STR$(n)); ") ="; fR(n) END ' === Analytic Fibonacci Function (Fastest) FUNCTION fA (n) fA = INT(0.5 + (((SQR(5) + 1) / 2) ^ n) / SQR(5)) END FUNCTION ' === Iterative Fibonacci Function (Fast) FUNCTION fI (n) FOR i = 1 TO n IF i < 3 THEN a = 1: b = 1 t = fI + b: fI = b: b = t NEXT END FUNCTION ' === Recursive Fibonacci function (Slow) FUNCTION fR (n) IF n <= 1 THEN fR = n ELSE fR = fR(n - 1) + fR(n - 2) END IF END FUNCTION