Basis van programmeren (pseudocode traceren)

Wat is de retourwaarde als de volgende functie fib wordt aangeroepen als fib(10)?

○integer: fib(integer: n)
  integer: a ← 0, b ← 1, t
  for (i from 1 to n step 1)
    t ← a + b
    a ← b
    b ← t
  endfor
  return a
  1. A34
  2. B55
  3. C89
Antwoord en toelichting tonen

Antwoord: B. 55

Elke doorgang schuift (a, b) één paar opeenvolgende Fibonaccigetallen op: (0, 1) → (1, 1) → (1, 2) → (2, 3) → (3, 5) → (5, 8) → (8, 13) → (13, 21) → (21, 34) → (34, 55) → (55, 89). Na 10 doorgangen geeft de functie a = 55 terug. Na de i-de doorgang is a het i-de Fibonaccigetal. Een naïeve recursieve versie berekent dezelfde waarden vele malen, maar deze versie heeft maar n doorgangen nodig.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van programmeren (pseudocode traceren)

  1. Hoe vaak wordt c aangeroepen, de eerste aanroep meegerekend, als de volgende functie c wordt aangeroepen als c(4, 2)?
  2. ⊕ is de bitsgewijze exclusieve OF. Welke waarden hebben x en y nadat het volgende programma is uitgevoerd?
  3. x en y zijn 8-bits gehele getallen zonder teken. << en >> zijn logische verschuivingen: vrijgekomen bits worden met 0 gevuld, en bits die buiten de 8 bits worden geschoven, vervallen. ∨ is de bitsgewijze OF. Wat is de waarde van y nadat het volgende programma is uitgevoerd?
  4. ∧ is de bitsgewijze EN. Wat is de waarde van c nadat het volgende programma is uitgevoerd?
  5. x en y zijn 8-bits gehele getallen zonder teken. << en >> zijn logische verschuivingen: vrijgekomen bits worden met 0 gevuld, en bits die buiten de 8 bits worden geschoven, vervallen. ∨ is de bitsgewijze OF. Wat is de waarde van y na de volgende toekenning, met x = 75?