import Foundation

func fibonacci(prevNumber: Int, number: Int, size: Int, i: Int) {
    // Die Variable nextnumber wird für nächste Fibonacci Zahl deklariert.
    var nextnumber : Int
   
    /* Da die Zählung der Fibonacci Zahlen bei 0 beginnt, d.h. mit F_{0} = 0, 
       wird in der Fallunterscheidung size -1 verwendet, um die Zahl an den 
       Indexwert anzupassen. So hat die zwölft Fibonacci Zahl, die 89, den 
       Indexwert elf, also F_{11} = 89. */

    if i < size - 1 {
        
        /* Solange wie der Wert von der Variablen i kleiner als der Wert der 
           Variablen size - 1 ist, wird einer neuer Wert für die Variable 
           nextnumber berechnet. Dazu wird die Summe aus prevnumber und number 
           gebildet. */ 

        nextnumber = prevNumber + number
        
        /* Der Variablen prevnumber wird der Wert der Variablen number 
           zugewiesen, und dieser wird der Wert von nextnumber zugewiesen. */

        prevNumber = number
        number = nextnumber
        
        // Der aktuelle Wert der Variablen nextnumber wird ausgegeben.
        print(nextnumber)
        
        // Die Variable i wird um 1 erhöht.
        i = i + 1
        
        // Nun wird die Funktion Fibonacci mit den neuen Werten erneut aufgerufen.
        fibonacci(prevNumber: prevNumber, number: number, size: size, i: i)
    }
}

/* Main

 Fibonacci Zahlen sind so definiert:
 F_{0} = 0, F_{1} = 1 und F_{n} = F_{n-1} + F_{n-2} für n > 1
 
 Ausgehend von einem Start bei 0 und 1 lauten die ersten zwölf Werte der 
 Folge 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89.

 Die Variablen prevnumber und number werden für die zwei Startwerte F_{0} 
 und F_{1} deklariert. Zu Beginn werden sie mit den Werten 0 beziehungsweise
 1 initialisiert.
*/ 

var prevnumber : Int

prevnumber = 0
var number : Int

number = 1

/* Die Variable size bezeichnet die n-te Fibonacci Zahl, bis zu der die Ausgabe 
   der Fibonacci Zahlen erfolgen soll. */ 

var size : Int

print("Bitte geben Sie eine Zahl zwischen 2 und 93 ein")
size = Int(readLine()!)!

/* Damit die Fibonacci Zahlen nicht zu groß werden, ist hier eine Begrenzung bei
   93 eingefügt worden. In der while Schleife wird geprüft, ob die Zahl kleiner 
   gleich 93 ist und ob sie größer als 0 ist. Da nur positive ganze Zahlen als 
   Eingabe möglich sind. */

while size > 93 || size < 0 {
    print("Bitte geben Sie eine Zahl zwischen 2 und 93 ein")
    size = Int(readLine()!)!
}

// Die Fibonacci Zahlen werden rekursiv mithilfe der Funktion Fibonacci berechnet.
print(prevnumber)
print(number)

// Die Fibonacci Zahlen werden rekursiv mithilfe der Funktion Fibonacci berechnet.
fibonacci(prevNumber: prevnumber, number: number, size: size, i: 1)
        
        
akzeptieren ablehen

Diese Website verwendet Cookies und Zählpixel, um Ihnen die bestmögliche Nutzung dieser Website zu ermöglichen.Learn more about cookies sehen Sie auch Datenschutz