Project Euler : Problem 002

Project Euler problems in Oforth . Feel free to post your own code.

Project Euler : Problem 002

Postby Franck » 26 Jul 2015 10:40

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, …

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 ;
Franck
 
Posts: 159
Joined: 29 Oct 2014 19:01

Return to Project Euler in Oforth

Who is online

Users browsing this forum: No registered users and 1 guest

cron