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