Skip to content

Python 510 費氏數列

Python TQC

題目說明:

請撰寫一程式,計算費氏數列(Fibonacci numbers),使用者輸入一正整數num (num>=2),並將它傳遞給名為compute()的函式,此函式將輸出費氏數列前num個的數值。

提示:費氏數列的某一項數字是其前兩項的和,而且第0項為0,第一項為1,表示方式如下:
\(F_0=0\)
\(F_1 = 1\)
\(F_n - F_{n-1} + F_{n-2}\)

範例輸入1
10

範例輸出1

0 1 1 2 3 5 8 13 21 34 

範例輸入2

20

範例輸出2

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 

題目解析

問題分析:

這個問題要求我們計算費氏數列(Fibonacci numbers),其中使用者輸入一個正整數 num\( \text{num} \geq 2 \)),並將其傳遞給名為 compute() 的函式。此函式將輸出費氏數列前 num 個的數值。

解題思路:

  1. 定義一個函式 compute(x),用遞迴的方式計算費氏數列的第 x 個數值。
  2. compute() 函式中,如果 x 大於 1,則返回前兩個數值的和,否則返回 x 本身。
  3. 在主程式中,接收使用者輸入的正整數 num
  4. 使用迴圈將從 0 到 num - 1 的每個數字傳遞給 compute() 函式,並輸出計算結果。

思考方向:

  1. 注意對於遞迴的理解,理解費氏數列的定義及其遞迴關係。
  2. 考慮使用迴圈或遞迴來計算費氏數列,並思考何種方法更加有效。
  3. 處理輸入數據的合法性檢查,確保使用者輸入的是正整數且大於等於 2。

Solution

1
2
3
4
5
6
def compute(x):
    if(x > 1):
        return compute(x - 1) + compute(x - 2)
    return x
for i in range(eval(input())):
    print(compute(i), end = " ")

Warning

記住用遞迴來做運算會最快


Last update : 13 novembre 2024
Created : 13 novembre 2024

Comments

Comments