|
|
- ## 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
- ```
|