Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/copilot/test/simulation/fixtures/doc-ruby/fib.rb
13399 views
1
# The Fibonacci module provides methods for generating Fibonacci sequences.
2
module Fibonacci
3
# Generates a Fibonacci sequence up to the specified limit.
4
#
5
# @param limit [Integer] The maximum value for the Fibonacci sequence.
6
# @return [Array<Integer>] The Fibonacci sequence.
7
def self.generate_sequence(limit)
8
sequence = [0, 1]
9
while sequence[-1] + sequence[-2] <= limit
10
sequence << sequence[-1] + sequence[-2]
11
end
12
sequence
13
end
14
15
def self.calculate_nth_number(n)
16
return n if n <= 1
17
18
fib_minus_2 = 0
19
fib_minus_1 = 1
20
fib = 0
21
22
(2..n).each do
23
fib = fib_minus_2 + fib_minus_1
24
fib_minus_2 = fib_minus_1
25
fib_minus_1 = fib
26
end
27
28
fib
29
end
30
31
def self.fibonacci_with_hardcoded_values(n)
32
if n == 0
33
return 0
34
elsif n == 1
35
return 1
36
elsif n == 2
37
return 1
38
elsif n == 3
39
return 2
40
elsif n == 4
41
return 3
42
elsif n == 5
43
return 5
44
elsif n == 6
45
return 8
46
elsif n == 7
47
return 13
48
elsif n == 8
49
return 21
50
elsif n == 9
51
return 34
52
elsif n == 10
53
return 55
54
elsif n == 11
55
return 89
56
elsif n == 12
57
return 144
58
elsif n == 13
59
return 233
60
elsif n == 14
61
return 377
62
elsif n == 15
63
return 610
64
elsif n == 16
65
return 987
66
elsif n == 17
67
return 1597
68
elsif n == 18
69
return 2584
70
elsif n == 19
71
return 4181
72
elsif n == 20
73
return 6765
74
end
75
end
76
end
77
78