トップページに戻る    次のC#のサンプルへ    前のC#のサンプルへ

Problem2 フィボナッチ数列の偶数の項の総和

問題

フィボナッチ数列の項は前の2つの項の和である。
最初の2項を1,2とすれば、最初の10項は以下の通りである。

1,2,3,5,8,13,21,34,55,89, ...
数列の項が400万を超えない範囲で、偶数の項の総和を求めよ。


ソース

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        int SumVal = 0;
        var ValList = new List<int>();
        while (true) {
            int P = ValList.Count;
            if (P == 0) ValList.Add(1);
            else if (P == 1) ValList.Add(2);
            else ValList.Add(ValList[P - 1] + ValList[P - 2]);

            int LastVal = ValList[ValList.Count - 1];
            if (LastVal > 4000000) break;
            if (LastVal % 2 == 0) SumVal += LastVal;
        }
        Console.WriteLine("Total=" + SumVal);
    }
}


実行結果

Total=4613732


解説

Listジェネリックでフィボナッチ数列を順に求めていってます。