Aquí tienes una Clase Fibonacci que había hecho para una tarea en la facultad, talvez te sirva
Código JAVA:
Ver original/**
* Autor: Jorge Ramirez.
*/
public class Fibonacci {
long numeros[] = null; //tabla utilizada para almacenar los valores asi no seran recalculados (Programación Dinamica).
public Fibonacci( int size ){
numeros = new long[size];
for(int i = 0; i < size ; i++ ){
numeros[i] = 0;
}
numeros[0] = numeros[1] = 1;
}
/* funcion para calcular la serie fibonacci de un nro utilizando la Técnica Divide y Vencerás*/
public long fiboDV( int numero ){
if( numero == 0 || numero == 1 ){
return 1;
}
else{
return ( numeros[numero] = fiboDV(numero-1) + fiboDV(numero-2));
}
}
/* funcion para calcular la seriefibonacci de un nro utilizando la Técnica de Programación Dinamica*/
public long fiboDI( int numero ){
if( numeros[numero] != 0){
return numeros[numero];
}
else{
return (numeros[numero] = fiboDV(numero-1) + fiboDV(numero-2));
}
}
// retorna todos los numeros de la serie fibonacci del numero ingresado
for(int i = 0 ; i < numeros.length ; i++){
if(numeros[i] != 0)
s += numeros[i] + " ";
}
return s;
}
}
Para los conceptos que se mencionan en la clase, por si tengas curiosidad
http://es.wikipedia.org/wiki/Programaci%C3%B3n_din%C3%A1mica_%28inform%C3%A1tic a%29 http://es.wikipedia.org/wiki/Algoritmo_divide_y_vencer%C3%A1s
Saludos
------------------------------------
visiten www.devshared.net