Pre: Introduce un número entero
Post: Devuelve el número de la serie de Fibonnaci correspondiente a la posición
del número indicado previamente
Post: Devuelve el número de la serie de Fibonnaci correspondiente a la posición
del número indicado previamente
Código
char FibonacciChar(int n) { char F[1000]; F[0] = '0'; F[1] = '1'; F[2] = '1'; if(n == 1) { return F[1]; } else if(n == 2) { return F[2]; } else if(n == 0) { return F[0]; } else { for( int i = 3 ; i <= n ; i++){ F = F[i-1] + F[i-2] -2 * '0'; F = F[n]; } return F[n]; } }
No entiendo porqué hacerse tanto problema de esa manera (y encima con un vector tan largo en la pila lo cuál suele ser un problema de seguridad) cuando se puede resolver prácticamente facil la secuencia de fibonacci con calculos con números aureos en 2 líneas...
Código
#include<cmath> #include<cstdio> #define FI ((float)((float)((float)1+((float)sqrt(5)))/(float)2)) #define FIBONACCI(posicion) ((int)((pow(FI,posicion)/sqrt(5))+0.5f)) int main() { int i; for(i^=i;i<10;i++) printf("Fibonacci en posicion (%i): %i\n",i,FIBONACCI(i)); return 0; }
B#