Problem #2:Find the sum of all the even-valued terms in the Fibonacci sequence which do not exceed four million.
Solution: A straight forward implementation in C for this problem can be as shown
This code works fine for our required need, but more optimizations can be done.How? Lets look at the fibo seq.
1 1 2 3 5 8 13 21 34 55 89 144 ...
As we can see,every 3rd term is a even number. Therefore we can change the code accordingly to just sum up every third number.
Another approach is we can find a recurrence funtion for this new series i.e. we can have :
It is easy to prove that for Fibonacci series we get:
Thus we get a more faster running code, which we eventually need :-)
Enjoy coding :-)
Solution: A straight forward implementation in C for this problem can be as shown
#include#define LIMIT 4000000 int main() { long a=1, b=2, c=0, sum=0; sum = b; while(c < LIMIT ){ c = a+b; if(c < 1000000) if(c%2 == 0) sum += c; a = b; b = c; } printf("\nAnswer to euler #2 : %ld\n",sum); }
This code works fine for our required need, but more optimizations can be done.How? Lets look at the fibo seq.
1 1 2 3 5 8 13 21 34 55 89 144 ...
As we can see,every 3rd term is a even number. Therefore we can change the code accordingly to just sum up every third number.
Another approach is we can find a recurrence funtion for this new series i.e. we can have :
F`(n)=4*F`(n-1) + F`(n-2)
It is easy to prove that for Fibonacci series we get:
F(n)=4*F(n-3)+F(n-6)
Thus we get a more faster running code, which we eventually need :-)
Enjoy coding :-)
No comments:
Post a Comment