< Zpět na seznam úloh

17 Fibonacciho posloupnost

var names = ['n', 'a', 'b']
var datasets = [
  {argv:[0, 0,1], out: 0},
  {argv:[1,0,1], out: 1},
  {argv:[2,0,1], out: 1},
  {argv:[3,0,1], out: 2},
  {argv:[5,0,1], out: 5},
  {argv:[30,0,1], out: 832040},
  {argv:[30,1346269,-832040], out: 1},
]

Mezi informatiky se povídá historka o bratru Bonaccim, který choval králíky. Život takového modelového králíka probíhá v obdobích po asi čtyřech měsících: po prvním období je králík pohlavně dospělý a poprvé se rozmnoží, po druhém období se znova rozmnoží a pak ho někdy zabijeme a sníme. Dejme tomu, že z každého vrhu se narodí dva králíci. A představme si, že vždycky králík má s kým se rozmnožovat, takže nemusíme řešit lichá čísla a statistiku.

Fibonacciho posloupnost je definovaná dvěma počátečními prvky f0 a f1. Každý další prvek odvodíme rekurzivně vzorcem fn+1 = fn + fn-1

Program dostává zadaná tři celá čísla:

Výstupem programu má být požadovaný prvek posloupnosti.

def main(n, a, b):
  if n == 1:
    return b
  return a