#40287: 中興高中解答


trent960116@gmail.com (210-14簡思睿)

學校 : 不指定學校
編號 : 265093
來源 : [114.26.83.124]
最後登入時間 :
2024-03-18 11:42:08
d486. Fibonacci 's computation process -- 學姊 | From: [114.26.85.173] | 發表日期 : 2024-05-06 11:49

def fibon(n):

    # 基本情況:如果n為0或1,返回1

    if n < 2:

        return 1

    # 遞迴情況:返回f(n-1) + f(n-2)

    else:

        return fibon(n - 1) + fibon(n - 2)

 

# 讀取用戶輸入的n的初始值。

n = int(input())

 

while n != 0:

    # 初始化一個包含當前值n的列表'g'。

    g = [n]

    print("f(" + str(n) + ") ")

 

    # 持續處理直到g中的所有元素都小於2。

    while any(i >= 2 for i in g):

        # 初始化一個新列表'r'以存儲序列的下一組值。

        r = []

 

        # 根據代碼中指定的規則生成下一組值。

        for t in g:

            if t >= 2:

                r.append(t - 1)

                r.append(t - 2)

            else:

                r.append(t)

 

        # 使用新的值更新列表'g'。

        g = r

 

        # 打印本次迭代生成的值序列。

        for t in r:

            print("f(" + str(t) + ") ", end="")

 

        print()

 

    # 使用遞迴計算f(n)的結果並打印。

    result = fibon(n)

    print("f(" + str(n) + ") = " + str(result))

 

    # 從用戶讀取n的下一個值。

    n = int(input())

 

 
ZeroJudge Forum