Eine gute Antwort wäre:


Complete Program

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;
      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.

time (sec) 223430360

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


Is an iterative version of Fibonacci possible?