-
Notifications
You must be signed in to change notification settings - Fork 0
/
fibonacci.rb
35 lines (29 loc) · 658 Bytes
/
fibonacci.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Gerador de sequência de fibonacci com recursão
# fibonacci_seq(len): gera len números da sequência de fibonacci.
def fibonacci(number)
if number < 2
number
else
fibonacci(number - 1) + fibonacci(number - 2)
end
end
def fibonacci_seq(len)
result = []
(0...len).each {|n| result << fibonacci(n)}
result
end
# Não é necessário fazer por recursão, a sequência pode ser calculada em
# um array:
def fibonacci_seq_2(len)
result = [0, 1]
return result if len <= 2
(2...len).each do |i|
result << result[i - 1] + result[i - 2]
end
result
end
puts ''
print fibonacci_seq(10)
puts ''
print fibonacci_seq_2(10)
puts ''