La seqüència de nombres de Fibonacci es defineix de la següent manera:
.
.
, per a
Un nombre natural és un nombre de Fibonacci si es pot generar de manera recursiva amb aquesta definició.
Cal fer una funció que rebi un vector V no buit (és a
dir, almenys té mida mes gran o igual que
)
d’enters positius, els quals són tots estrictament més grans que
i que torni TRUE si i només si tots els
números que hi ha a V són nombres de Fibonacci.
Fixeu-vos que us demanem una funció que torni TRUE si i
només si tots els números del vector són nombres de Fibonacci, i no pas
que els números del vector formin una seqüència de
Fibonacci.
Per a ajudar-vos a fer el programa, el vector V està
ordenat. Això us ha d’ajudar a fer un programa més eficient que no pas
si el vector V no estigués ordenat. Ara bé, si voleu, podeu
fer el problema sense tenir en compte que v està
ordenat.
Per exemple, si V és
la funció tornarà TRUE, ja que tots els números que hi ha
són nombres de Fibonacci, mentre que si V és
,
la funció tornarà FALSE, ja que
no és cap nombre de Fibonacci.
IMPORTANT! No feu cap assumpció
sobre el contingut de V, només que està ordenat i prou i
que té, almenys, un element. Segons les assumpcions que feu, podeu fer
una solució que funcioni només en els exemples que us donem (públics),
però no en tots (públics i privats).
1 vector v ordenat d’enters.
TRUE si i només si v només conté nombres de
Fibonacci.
Input
5 5 13 21 34 144
Output
TRUE
Input
5 2 21 89 90 114
Output
FALSE
Input
6 5 8 13 21 34 233
Output
TRUE