Project Euler Problem2
第2問
Link:Problem2 - PukiWiki
/*
Probrem2
フィボナッチ数列の項は前の2つの項の和である。
最初の2項を 1, 2 とすれば、最初の10項は以下の通りである。
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
数列の項が400万を超えない範囲で、偶数の項の総和を求めよ。
*/
#include <stdio.h>
#define X1 1
#define X2 2
#define MAX 4000000
int judge_even(int num, int sum)
{
if(num%2 == 0)
sum += num;
return sum;
}
int solve_probrem2(int x_prev1, int x_prev2)
{
int sum = 0;
sum = judge_even(x_prev2, sum);
sum = judge_even(x_prev1, sum);
while(1){
int x = x_prev1 + x_prev2;
sum = judge_even(x, sum);
x_prev2 = x_prev1;
x_prev1 = x;
if(x > MAX) break;
}
return sum;
}
int main(void)
{
int x_prev2 = X1;
int x_prev1 = X2;
int ans = solve_probrem2(x_prev1, x_prev2);
printf("===Problem2===\n");
printf("Answer : %d\n", ans);
return 0;
}
[実行結果]
$ ./problem2 ===Problem2=== Answer : 4613732
| 固定リンク | コメント (0) | トラックバック (0)

最近のコメント