Oto moje zadanie:
Liczbę f(i) nazywamy liczbą Fibonacciego, gdy spełnia równania:
f(i) = 1 dla i=1,2
f(i) = f(i-1) + f(i-2) dla i>2

Napisz program który wczytuje wprowadzoną z klawiatury liczbę naturalną i odpowiada na pytanie, czy liczba ta jest sumą co najwyżej czterech kolejnych liczb Fibonacciego.


Odpowiedź :

#/usr/bin/env ruby
MaxNum=20000000000 #jakaś sensowna liczba :P

a,b,c,d,s=1,1,2,3,7

lista=[]

while s<MaxNum
lista<<s
s=s-a+c+d
d,c,b,a=c+d,d,c,b
end

if lista.include?(gets.chomp.to_i)
puts "Tak"
else
puts "Nie"
end