程式設計基礎(虛擬碼追蹤)

以 fib(10) 呼叫下列函式 fib 時,回傳值為下列何者?

○整數型: fib(整數型: n)
  整數型: a ← 0, b ← 1, t
  for (i 從 1 到 n 每次加 1)
    t ← a + b
    a ← b
    b ← t
  endfor
  return a
  1. A34
  2. B55
  3. C89
查看答案與解析

正確答案:B. 55

每次重複時,(a, b) 都把相鄰的費波那契數組往前推進一個:(0, 1) → (1, 1) → (1, 2) → (2, 3) → (3, 5) → (5, 8) → (8, 13) → (13, 21) → (21, 34) → (34, 55) → (55, 89),推進10次後回傳 a = 55。第 i 次重複之後,a 就是第 i 個費波那契數。若以單純的遞迴撰寫,同樣的值會被計算很多次,但這種寫法只需 n 次重複。

  • A. 這是重複少一次(終值為 n − 1)時的值。
  • B. 正確。推進10次後 a = 55。
  • C. 這是回傳 b 時的值,也就是第11個費波那契數。
練習這個領域 前往領域頁面

相關計算工具

程式設計基礎(虛擬碼追蹤)的其他題目

  1. 以 c(4, 2) 呼叫下列函式 c 時,c 被呼叫的次數(含第一次呼叫)為下列何者?
  2. ⊕ 表示逐位元的互斥或。執行下列程式後 x 與 y 的值為下列何者?
  3. x 與 y 為8位元的無號整數。<< 與 >> 為邏輯移位,空出的位元補0,超出8位元的位元捨棄。∨ 表示逐位元的邏輯或。執行下列程式後 y 的值為下列何者?
  4. ∧ 表示逐位元的邏輯與。執行下列程式後 c 的值為下列何者?
  5. x 與 y 為8位元的無號整數。<< 與 >> 為邏輯移位,空出的位元補0,超出8位元的位元捨棄。∨ 表示逐位元的邏輯或。x 為 75 時,執行下列指派後 y 的值為下列何者?