Project Euler 2 Even Fibonacci numbers


题意:斐波那契数列中的每一项都是前两项的和。由1和2开始生成的斐波那契数列前10项为:1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …考虑该斐波那契数列中不超过四百万的项,求其中为偶数的项之和。


/*************************************************************************
    > File Name: euler002.c
    > Author:    WArobot 
    > Blog:      http://www.cnblogs.com/WArobot/ 
    > Created Time: 2017年06月25日 星期日 10时39分29秒
 ************************************************************************/

#include <stdio.h>
#include <inttypes.h>

#define MAX_N 50000
void solve(){
	int32_t fib[MAX_N] = {0};
	fib[1] = 1 , fib[2] = 2;  fib[0] = 3;
	while( fib[ fib[0] - 1 ] < 4000000 ) {
		fib[ fib[0] ] = fib[ fib[0] - 1 ] + fib[ fib[0] - 2 ];
		fib[0]++;
	}
	int64_t sum = 0;
	for(int32_t i = 1 ; i <= fib[0] ; i++){
		if( !(fib[i] & 1) )	sum += (int64_t)fib[i];
	}
	printf("%"PRId64"\n",sum);
}

int32_t main(){
	solve();
	return 0;
}
posted @ 2017-06-25 10:50  ojnQ  阅读(166)  评论(0编辑  收藏  举报