フィボナッチ数列の項は前の2つの項の和である. 最初の2項を 1, 2 とすれば, 最初の10項は以下の通りである.
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …
数列の項の値が400万以下の, 偶数値の項の総和を求めよ.
ソースコード
#include <iostream>
#include <cmath>
using namespace std;
int main(void) {
int a = 1;
int b = 1;
long long int sum = 0;
while (sum < 400 * pow(10, 4)) {
int c = a + b;
a = b;
b = c;
if(c % 2 == 0)
sum += c;
}
cout << sum << endl;
}
/* 実行結果
4613732
*/

答えは4613732でした。
普通のint型ではオーバーフローしたので、long long int 型にしました。
コメント