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)
最近のコメント