2020-06-05 19:20:25 +03:00
|
|
|
/**
|
|
|
|
* \file
|
|
|
|
* \brief [Problem 2](https://projecteuler.net/problem=2) solution
|
|
|
|
*
|
|
|
|
* Problem:
|
|
|
|
*
|
|
|
|
* 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
|
|
|
|
* n, find the sum of the even-valued terms. e.g. for n=10, we have {2,8}, sum
|
|
|
|
* is 10.
|
|
|
|
*/
|
2017-12-03 13:16:36 +03:00
|
|
|
#include <stdio.h>
|
|
|
|
|
2020-06-05 19:20:25 +03:00
|
|
|
/** Main function */
|
2020-05-29 23:23:24 +03:00
|
|
|
int main()
|
|
|
|
{
|
|
|
|
int n = 0;
|
|
|
|
int sum = 0;
|
|
|
|
int i = 1;
|
|
|
|
int j = 2;
|
|
|
|
int temp;
|
|
|
|
scanf("%d", &n);
|
2017-12-03 13:16:36 +03:00
|
|
|
|
2020-05-29 23:23:24 +03:00
|
|
|
while (j <= n)
|
|
|
|
{
|
2020-06-28 18:25:37 +03:00
|
|
|
if ((j & 1) == 0) // can also use(j%2 == 0)
|
2020-05-29 23:23:24 +03:00
|
|
|
sum += j;
|
|
|
|
temp = i;
|
|
|
|
i = j;
|
|
|
|
j = temp + i;
|
|
|
|
}
|
2017-12-03 13:16:36 +03:00
|
|
|
|
2020-05-29 23:23:24 +03:00
|
|
|
printf("%d\n", sum);
|
2020-06-05 19:20:25 +03:00
|
|
|
return 0;
|
2017-12-03 13:16:36 +03:00
|
|
|
}
|