トップページに戻る
次のC++のサンプルへ
前のC++のサンプルへ
Problem2 フィボナッチ数列の偶数の項の総和
問題
フィボナッチ数列の項は前の2つの項の和である。
最初の2項を1,2とすれば、最初の10項は以下の通りである。
1,2,3,5,8,13,21,34,55,89, ...
数列の項が400万を超えない範囲で、偶数の項の総和を求めよ。
ソース
#include <stdio.h>
#include <vector>
void main()
{
int SumVal = 0;
std::vector<int> intVec;
while(true){
int size=intVec.size();
if (size == 0) intVec.push_back(1);
else if (size == 1) intVec.push_back(2);
else intVec.push_back(intVec[size-2] + intVec[size-1]);
int LastVal = intVec.back();
if (LastVal > 4000000) break;
if (LastVal % 2 == 0) SumVal += LastVal;
}
printf("SumVal = %d \n",SumVal);
}
実行結果
SumVal = 4613732
解説