LeetCode/study-plan/dynamic-programming/day-01/fibonacci-number.rb

40 lines
609 B
Ruby
Raw Normal View History

# @param {Integer} n
# @return {Integer}
def fib(n)
if n == 0 then
return 0
end
prev, current = 0, 1
(2..n).each {
prev, current = current, prev + current
}
return current
end
RSpec.describe "fib of " do
it "0 is 0" do
expect(fib(0)).to eq(0)
end
it "1 is 1" do
expect(fib(1)).to eq(1)
end
it "2 is 1" do
expect(fib(2)).to eq(1)
end
it "3 is 2" do
expect(fib(3)).to eq(2)
end
it "4 is 3" do
expect(fib(4)).to eq(3)
end
it "5 is 5" do
expect(fib(5)).to eq(5)
end
end