# Fibo Zahlen:iterativ,rekursiv   Anzahl der Additionen zählen



## Norg (17. Jan 2008)

Hallo

Ich bräuchte mal eure Hilfe.
Ich soll ein Programm schreiben mit welchem sich die Fibonacci- Zahlen berechnen lassen.
Dieses Programm soll diese Zahlen iterativ und rekursiv berechnen.
Weiters soll zum Vergleich des Aufwands ein Zähler für Additionen mitgeführt werden und sein Stand nach Ende der Rechnung ausgegeben werden.

Bei iterativer Berechnung ist dass ja kein Problem aber bei rekursiver Berechnung?



```
// Fib Zahlen: 1 1 2 3 5 8 13 21 34 55 ...

import java.util.Scanner;

public class Bsp23{
    public static void main(String[] args) {

 Scanner sc = new Scanner(System.in);

  System.out.println("gib n");
   
  int n = sc.nextInt();
  fib2(n);     
  fibonacci(n); 

System.out.println("rekursiv");
System.out.println("fib("+n+") = " + fibonacci(n)  );

   }     

//        
// Fib- Zahlen iterativ
//
   
private static void fib2(int n) {
 
    int a;
    int currentFib = 0;
    int nextFib = 1;
    int zaehler=0;	

    for (int i=1;i <= n;i++) {
     zaehler++; 
     a = nextFib;
     nextFib = currentFib + nextFib;
     currentFib = a;
    }
System.out.println("iterativ ");
System.out.println("fib("+n+") = "+ currentFib);
System.out.println("Anzahl Additionen="+ zaehler);
System.out.println();
}



/* 
 * Fibonacci Zahlen rekursiv
 */
  
private static int fibonacci(int n){

if (n==0) return 0;
if (n==1) return 1;
return (fibonacci(n-1)+fibonacci(n-2));

}}
```


----------



## Guest (18. Jan 2008)

ich versuche mal, dein problem zu erraten: du weißt nicht, wie du die zähler-variable bei der rekursiven methode "behalten" sollst? Falls das richtig ist, gibts da 2 lösungen: entweder du definierst die zählvariable als klassenvariable, oder aber du übergibst den zähler bei jedem rekursiven aufruf als argument mit.


----------



## Norg (18. Jan 2008)

Danke für die Hilfe

Hab nicht an die Klassenvariable gedacht.

Jetzt funktioniert alles


----------

