Yes.

When `fib(n)`

is computed recursively, very many activations are created
and destroyed.
Sometimes the time it takes to compute `fib(n)`

is used as a
**benchmark**, a program that tests the speed of a computer.
Here is a bare-minimum program for `fib(n)`

:

class FibonacciCalc { public int fib( int n ) { if ( n == 1 ) return 1; else if ( n == 2 ) return 1; else return fib( n-1 ) + fib( n-2 ); } } class FibonacciTester { public static void main ( String[] args) { int argument = Integer.parseInt( args[0] ); FibonacciCalc f = new FibonacciCalc(); int result = f.fib( argument ); System.out.println("fib(" + argument + ") is " + result ); } }

Here are some results of running the program on my IBM ThinkPad 380ED. You might wish to run the program on your computer and compare speeds.

N | 10 | 20 | 30 | 35 | 40 | 45 |
---|---|---|---|---|---|---|

fib(N) | 55 | 6765 | 832040 | 9227465 | 102334155 | 1134903170 |

time (sec) | 2 | 2 | 3 | 4 | 30 | 360 |

It takes a few seconds for the Java system to load and start running. This time is included in these measurements.