Ruby fundamentals through coding exercises
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

1.4 KiB

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