0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python】フィボナッチ数

Last updated at Posted at 2025-01-16

はじめに

Pythonでフィボナッチ数列を出力する問題を解いてみた。
再帰関数を用いて解くパターンが多いらしいが、まだそこまで学習が追い付いてなくて理解が難しかったので、他の方法で実装してみた。

フィボナッチ数列とは

定義や概要などはWikipediaを参照。数学的に有名な数列の1つ。

プログラム的な活用法としては、主に初心者の練習問題として扱われる他、各言語の演算速度を測定するために用いられることもあるらしい。

問題

フィボナッチ数列をn番目まで表示してください。

実装の過程

まずは下準備として、最初の2数をあらかじめリストに代入しておく。

list_1 = [1, 1]

nをユーザー入力させるための下準備を行う。

n = int(input())

n番目までの数をfor文で出力。

for i in range(n):

最初の2数に関しては、既に準備したリストより出力すれば良いだけなので、

    if (i == 0) or (i == 1):
        print(list_1[i])

3番目以降の数は、リストの末尾の2数を合計すれば求められる。
計算結果を変数sumに代入。

    else:
        num = list_1[-1] + list_1[-2] 

ループ前にsumをリストに追加するのを忘れない。

        list_1.append(num)
        print(num)

出力結果

ここでは例としてn = 15の場合を記す。

1
1
2
3
5
8
13
21
34
55
89
144
233
377
610

まとめ

最後に上記のコードをまとめたものを掲載しておく。

list_1 = [1, 1]   # リストの準備

n = int(input())   # ユーザー入力の受付

for i in range(n):

    # 最初の2数の出力
    if (i == 0) or (i == 1):
        print(list_1[i])

    # 3番目以降の数の演算・出力
    else:
        num = list_1[-1] + list_1[-2]   # リスト末尾の2数を合計すれば求められる
        list_1.append(num)   # 計算結果をリスト末尾に追加する
        print(num)
0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?