Fibonacci numbers
Lección 4 de 20 del curso Acertijos matemáticos de Coddy.
Cada nuevo término en la sucesión de Fibonacci se genera sumando los dos términos anteriores.
a[n+2]=a[n]+a[n+1]Al comenzar con 1 y 2, los primeros 10 términos por debajo de 100 serán:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89.
La sucesión de Fibonacci aparece en el libro Liber Abaci (El libro del cálculo, 1202) de Fibonacci, donde se utiliza para calcular el crecimiento de las poblaciones de conejos. Fibonacci considera el crecimiento de una población de conejos idealizada (biológicamente poco realista), asumiendo que: se coloca en un campo una pareja de conejos recién nacidos con capacidad de procrear; cada pareja reproductora se aparea al mes de edad y, al final de su segundo mes, siempre producen otra pareja de conejos; y los conejos nunca mueren, sino que continúan reproduciéndose para siempre. Fibonacci planteó el acertijo: ¿cuántas parejas habrá en un año?
Al final del n-ésimo mes, el número de parejas de conejos es igual al número de parejas maduras (es decir, el número de parejas en el mes n – 2) más el número de parejas vivas el mes pasado (mes n – 1). El número en el n-ésimo mes es el n-ésimo número de Fibonacci. [Wikipedia, la enciclopedia libre]
Desafío
FácilEscribe código python calcFibonacciNums que reciba un número natural, <i>N</i>, y devuelva el número de términos de la secuencia de Fibonacci, comenzando con 1 y 2, cuyos valores no excedan <i>N</i>.
Pruébalo tú mismo
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "solution.h"
int main() {
int n;
if (scanf("%d", &n) != 1) n = 0;
int r = calcFibonacciNums(n);
printf("%d\n", r);
return 0;
}