Python問題集を解いてみよう!!

【Python】フィボナッチ数列の問題を解いてみた

フィボナッチ数列の問題を解いてみた

Python 系の LINE オプチャにフィボナッチ数列に関する問題が投稿されたので、解いてみました。

解説は書きませんが、何かの参考になれば幸いです。

おすすめのレンタルサーバー
目次

問題と解答

問題

「フィボナッチ数列」と呼ばれる数列があります。

これは、

「前 2 つの数を足したもの。1 番目と 2 番目は 1 」

というものです。つまり、

1, 1, 2, 3, 5, …(例えば 4 番目の数字 3 は 1 + 2)

となります。このフィボナッチ数列について以下の問いに答えなさい。プログラムについて特に制限はありません。

問1

問 1

フィボナッチ数列を 10 個程度出力してみましょう。

問 1 のコード
fibo = [1, 1]

while len(fibo) < 10:
    n = len(fibo)
    fibo.append(fibo[n-2] + fibo[n-1])

print(fibo)

これは無数に書き方があるように思いますが、一番しっくりきたものを掲載しておきます。

後ほど Google Colab のリンクも掲載しますが、そちらには他の書き方も載せます。

問2

問 2

数が 50 以下のフィボナッチ数列の合計を出力しなさい。

問 2 のコード
fibo = [1, 1]

while True:
    n = len(fibo)
    fibo_n = fibo[n-2] + fibo[n-1]
    if fibo_n <= 50:
        fibo.append(fibo_n)
    else:
        break

print(f"数が 50 以下のフィボナッチ数列\n{fibo}\n")
print(f"数が 50 以下のフィボナッチ数列の合計\n{sum(fibo)}")

問3

問 3

変数 n を用意し、n 番目までのフィボナッチ数列の合計を表示しなさい。実行するとき n は好きな数を設定してください。

問 3 のコード
n = int(input("nに設定する自然数を入力してください:"))

fibo = [1, 1]

while len(fibo) < n:
    m = len(fibo)
    fibo.append(fibo[m-2] + fibo[m-1])

print(f"n :  {n}\n")
print(f"{n} 番目までのフィボナッチ数列\n{fibo}\n")
print(f"{n} 番目までのフィボナッチ数列の合計\n{sum(fibo)}")

問4

問 4

100 以下のフィボナッチ数列に偶数が何個あるか答えなさい。

問 4 のコード
fibo = [1, 1]
even_fibo = []

while True:
    n = len(fibo)
    fibo_n = fibo[n-2] + fibo[n-1]

    if fibo_n > 100:
        break
    elif fibo_n % 2 == 0:
        even_fibo.append(fibo_n)

    fibo.append(fibo_n)

print(f"100以下のフィボナッチ数列\n{fibo}\n")
print(f"100以下のフィボナッチ数列の偶数の値\n{even_fibo}\n")
print(f"100以下のフィボナッチ数列の偶数の値の個数\n{len(even_fibo)}\n")

問5

問 5

30 以下のフィボナッチ数列の平均値を答えなさい。

問 5 のコード
fibo = [1, 1]

while True:
    n = len(fibo)
    fibo_n = fibo[n-2] + fibo[n-1]
    if fibo_n <= 30:
        fibo.append(fibo_n)
    else:
        break

print(f"30以下のフィボナッチ数列\n{fibo}\n")
print(f"30以下のフィボナッチ数列の平均値\n{sum(fibo)/len(fibo)}")
Pythonを勉強するならUdemyがおすすめ

Pythonを勉強するなら Udemy がおすすめです。

書籍よりも動画の方が情報量が多く、初心者の方でも理解しやすいですし、疑問に思ったことは講師に質問できるので、私は Python の勉強方として Udemy をオススメしています。

特に、酒井 潤さんの「現役シリコンバレーエンジニアが教えるPython入門」というコースがオススメです。

Google Colaboratory

本記事に掲載しているコードは Google Colaboratory で動作を確認しています。

下記リンクからアクセスして、ご自身の Google ドライブにコピーしていただければ、すぐに実行できます。

おわりに

今回は LINE オプチャに投稿されていたフィボナッチ数列に関する問題を解いてみました。

もう少し難しい問題に挑戦したい方は下記記事もフィボナッチ数列に関する問題なので、ぜひ挑戦してみてください。

以上です。

スポンサーリンク

フィボナッチ数列の問題を解いてみた

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次