Time for my second entry in the Project Euler series. A bit more to keep track of this time, but still pretty simple.
Problem 2:
Even Fibonacci Numbers
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.
DECLARE upper_limit INTEGER := 4000000; answer INTEGER := 0; a INTEGER := 1; b INTEGER := 2; c INTEGER := 0; --must declare an initial value; NULL !< any number BEGIN WHILE c < upper_limit LOOP c := a + b; --check if number is even IF REMAINDER(b,2) = 0 THEN answer := answer + b; END IF; a := b; b := c; END LOOP; dbms_output.put_line(answer); END; -- output: 4613732
Another straight forward solution here. You could create a function to return the next value in the sequence, and another to return if a number is even or not, but I think it’s perfectly readable the way it is now.
Questions or comments? Feel free to leave them below or reach out to me on Twitter!