## 4 Fibonaccin lukusarja **Tehtävä:** Luvun neljännessä tehtävässä toteutetaan Fibonaccin lukusarjaa laskeva ohjelma. Fibonaccin lukusarja on matemaattinen sarja, jossa sarjan seuraava luku on kahden edellisen luvun summa, eli uusi luku = edellinen luku + toiseksi uusin. Lukusarja menee siis seuraavalla tavalla: 0 1 1 2 3 5 8 13 21 ... jne. Tehtävänäsi onkin rakentaa ohjelma, joka laskee käyttäjälle lukusarjaa eteenpäin. Lähtötietona ohjelmalle voidaan kerta ensimmäiset kaksi lukua, 0 ja 1. Tämän jälkeen ohjelma kysyy "Montako kierrosta lasketaan?: ", ja tulostaa Fibonaccin lukusarjan lukuja annetun määrän muodossa "Seuraava Fibonaccin luku on [vastaus]". Toimiessaan oikein ohjelma tulostaa seuraavaa: Example output: ``` Montako kierrosta lasketaan?: 5 Seuraava Fibonaccin luku on 1. Seuraava Fibonaccin luku on 2. Seuraava Fibonaccin luku on 3. Seuraava Fibonaccin luku on 5. Seuraava Fibonaccin luku on 8. ``` **Vastaus** ``` #!/usr/bin/env ruby # coding: utf-8 i = 0; lukutmp = 0; fibonacci = [0,1] begin print "Montako kierrosta lasketaan?: " kierrokset = Integer(gets.strip.chomp) rescue ArgumentError warn "Syötä kokonaisluku" retry end while i < kierrokset lukutmp = fibonacci[1] i += 1 puts "Seuraava Fibonaccin luku on #{fibonacci[0] + fibonacci[1]}." fibonacci[1] = lukutmp + fibonacci[0] fibonacci[0] = lukutmp end ```