mirror of
https://gitlab.com/mfocko/LeetCode.git
synced 2024-11-14 01:49:41 +01:00
44 lines
766 B
Ruby
44 lines
766 B
Ruby
|
# @param {Integer} n
|
||
|
# @return {Integer}
|
||
|
def tribonacci(n)
|
||
|
sequence = [0, 1, 1]
|
||
|
if n < 3 then
|
||
|
return sequence[n]
|
||
|
end
|
||
|
|
||
|
(3..n).each {
|
||
|
sequence = sequence.drop(1) + [sequence.sum]
|
||
|
}
|
||
|
return sequence.last
|
||
|
end
|
||
|
|
||
|
RSpec.describe "tribonacci of " do
|
||
|
it "0 is 0" do
|
||
|
expect(tribonacci(0)).to eq(0)
|
||
|
end
|
||
|
|
||
|
it "1 is 1" do
|
||
|
expect(tribonacci(1)).to eq(1)
|
||
|
end
|
||
|
|
||
|
it "2 is 1" do
|
||
|
expect(tribonacci(2)).to eq(1)
|
||
|
end
|
||
|
|
||
|
it "3 is 2" do
|
||
|
expect(tribonacci(3)).to eq(2)
|
||
|
end
|
||
|
|
||
|
it "4 is 4" do
|
||
|
expect(tribonacci(4)).to eq(4)
|
||
|
end
|
||
|
|
||
|
it "5 is 7" do
|
||
|
expect(tribonacci(5)).to eq(7)
|
||
|
end
|
||
|
|
||
|
it "25 is 1389537" do
|
||
|
expect(tribonacci(25)).to eq(1389537)
|
||
|
end
|
||
|
end
|