【レベル2】フィボナッチ数列を羅列させる

Bookmark this on Google Bookmarks
Pocket

練習問題

フィボナッチ数列をリスト化するプログラムを書きなさい。

問題を解くのに必要な知識

  • while
  • append()
  • 解説

    フィボナッチ数列自体を表現することは難しくありません。
    まず、def関数で定義を行い結果を出すリストを作成します。
    def関数は特別使う必要はありませんが、nを様々な数字で検証したいときに便利です。
    def fib(n):
         result = []
    

    次に、初項と第二項を指定してあげます。でないと、An+1=An+An-1が成り立ちません。
    a=0
    b=1
    あとは、while文で条件を整えます。ここが一番頭を使うところです。

    while b < n:        #nで指定した数字まで以下を繰り返す
        result.append(b) #bをリストに加える
        a, b = b, a+b    #a=b,b=a+bと同義
    return result        #リストを返します
    

    これで、フィボナッチ数列は完成です。

    解答

    def fib(n):
        result = []
        a, b = 0, 1
        while b < n: 
            result.append(b)
            a, b = b, a+b
        return result
    

    fib(100)
    とすれば、
    [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
    が返ってきます。