yukiyukkiのぐんにょり日記

興味の赴くままに。

目次

書庫

Blog 利用状況

自サイト

2009年1月8日 #

某さんのところで見かけた例題。

鳥の人のところで見かけたので、やってみるー


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

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

数列の項が400万を超えない範囲で、偶数の項の総和を求めよ。


Sub Main()

 Dim totalcnt As Long
 Dim n1,n2,n3 As Long
 Dim Limit As Long

 n1 = 0 : n2 = 1 : n3 = 1
 Limit = 4000000

 Do While n3 <= Limit
  If n3 mod 2 = 0 Then
   totalcnt = totalcnt + n3
  End If

  n3 = n1 + n2
  n1 = n2
  n2 = n3
 Loop

 Debug.Print "Total:" & totalcnt

End Sub

一応加算する前にtotal計算してるからループ一回余分に回るのは大丈夫なんだけど、ちょっと気持ち悪い・・・

posted @ 22:26 | Feedback (6)