1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …

Find the sum of all the even-valued terms in the sequence which do not exceed four million.

- Code: Select all
`// pe002 ( n -- n) : Returns sum of even-valued terms of fib whose value do not exceed n`

// "tuck +" calculate fib(n) and fib(n+1) if fib(n-1) and fib(n) are on the stack.

: pe002(n)

0 1 1 while ( dup n <= ) [

dup isEven ifTrue: [ rot over + tor ]

tuck +

]

2drop ;