Skip to content

Instantly share code, notes, and snippets.

@michaelavila
Created June 7, 2013 06:02
Show Gist options
  • Save michaelavila/5727320 to your computer and use it in GitHub Desktop.
Save michaelavila/5727320 to your computer and use it in GitHub Desktop.
#
# Each new term in the Fibonacci sequence is generated by adding the previous
# two terms. By starting with 1 and 2, the first 10 terms will be:
#
# 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
#
# By considering the terms in the Fibonacci sequence whose values do not exceed
# four million, find the sum of the even-valued terms.
#
def problem_2_algorithm input
penultimate, last = [1, 2]
sum = 0
while last < input do
next_value = penultimate + last
if last.even?
sum += last
end
penultimate = last
last = next_value
end
sum
end
describe 'problem_2_algorithm' do
it 'should return 44 with an input value of 100' do
answer = problem_2_algorithm 100
answer.should == 44
end
it 'should return the answer when the input value is 4,000,000' do
answer = problem_2_algorithm 4000000
puts answer
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment