返回列表 發帖

308 函式與陣列 (費氏數列)

本帖最後由 鄭繼威 於 2024-1-30 15:57 編輯

1. 題目說明:
請依下列題意進行作答,使輸出值符合題意要求。

2. 設計說明:
請撰寫一程式,包含名為compute()的函式,接收主程式傳遞的一個正整數n(n<10),compute()計算費氏數列第n項的值後回傳至主程式,並輸出倒印費氏數列。

提示:費氏數列的某一項數字是其前兩項的和,而且第0項為0,第一項為1,表示方式如下:



提示:若使用 Java 語言答題,請以「JP」開頭命名包含 main 靜態方法的 class,評測系統才能正確評分。

3. 輸入輸出:
輸入說明
一個小於10的正整數

輸出說明
倒印費氏數列

範例輸入
9
範例輸出
fib(9)=34
fib(8)=21
fib(7)=13
fib(6)=8
fib(5)=5
fib(4)=3
fib(3)=2
fib(2)=1
fib(1)=1


本帖隱藏的內容需要回復才可以瀏覽
Python
  1. fib = [0, 1]
  2. def compute(x):
  3.     global fib
  4.     for i in range(x):
  5.         fib.append(fib[-1] + fib[-2])
  6.     return fib[x]

  7. n = int(input())
  8. Fib_n = compute(n)
  9. for i in range(n, 0, -1):
  10.     print('fib(' + str(i) + ')=' + str(fib[i]))
複製代碼

  1. def compute(n):
  2.     for i in range(2,n+1):
  3.         x=fib[i-1]+fib[i-2]
  4.         fib.append(x)
  5.     return fib[-1]
  6. fib=[0,1]
  7. n=int(input())   
  8. for i in range(n,0,-1):
  9.     t=compute(i)
  10.     print(f"fib({i})={t}")
複製代碼

TOP

本帖最後由 王亭婷 於 2024-2-15 20:51 編輯

def compute(n):
    if n==0:
        return 0
    elif n==1:
        return 1
    else:
        return compute(n-1)+compute(n-2)
   
n=int(input())
for i in range(int(n),0,-1):
    t=compute(i)
    print(f"fib({i})={t}")

TOP

  1. def compute(n):
  2.     for i in range(2,n+1):
  3.         x=fib[i-1]+fib[i-2]
  4.         fib.append(x)
  5.     return fib[-1]

  6. fib=[0,1]
  7. n=int(input())   
  8. for i in range(n,0,-1):
  9.     t=compute(i)
  10.     print(f"fib({i})={t}")
複製代碼

TOP

本帖最後由 張桔熙 於 2024-2-2 13:53 編輯
  1. def compute(n):
  2.     for i in range(2,n+1):
  3.         x=fib[i-1]+fib[i-2]
  4.         fib.append(x)
  5.     return fib[-1]

  6. fib=[0,1]

  7. n=int(input())

  8. for i in range(n,0,-1):
  9.     t=compute(i)
  10.     print(f"fib({i})={t}")
複製代碼

TOP

  1. def compute(n):
  2.     if n==0:
  3.         return 0
  4.     elif n==1:
  5.         return 1
  6.     else:
  7.         return compute(n-1)+compute(n-2)
  8.         
  9.    
  10. n=int(input())        
  11. for i in range(int(n),0,-1):
  12.     t=compute(i)
  13.     print(f"fib({i})={t}")
複製代碼
回復 1# 鄭繼威

TOP

  1. s=0
  2. def compute(x):
  3.     for i in range(2,x+1):
  4.         s=n[i-1]+n[i-2]
  5.         n.append(s)
  6.     return n[-1]

  7. x=int(input())
  8. n=[0,1]
  9. for i in range(x,0,-1):
  10.     t=compute(i)   
  11.     print(f"fib({i})={t}")
複製代碼

TOP

返回列表