Yo lo se hacer, doy clases de Java en una universidad, pero colocarlo aquí sería hacerte la tarea.
Si amplías tu pregunta con lo que has intentado hacer y colocas algunas dudas más específicas , te puedo responder de forma que hagas tu ejercicio y aprendas a hacerlo en lugar de transcribirlo.
2007-03-12 10:11:34
·
answer #1
·
answered by ftugues 6
·
6⤊
3⤋
¡Hola!
Aquí te presento una forma sencilla en un algoritmo recursivo:
import java.util.Scanner;
public class Fibonacci{
public Fibonacci(){
}
public static int fibonacci (int n){
if ((n == 0) || (n == 1))
return 1;
else
return fibonacci(n-1) + fibonacci(n-2);
}
public static void main(String args[]){
// Se crea un objeto de la clase Scanner para obtener un número desde el teclado
Scanner sc = new Scanner(System.in);
// Se declara una variable tipo entero que será enviada como parametro
int numConsola;
Fibonacci obj = new Fibonacci();
System.out.println("Escribe un entero para obtener su Fibonacci = ");
numConsola = sc.nextInt();
System.out.println("El fibonacci de "+numConsola+" es = "+obj.fibonacci(numConsola));
}
}
Y a continuación el mismo algoritmo en modo iterativo:
import java.util.Scanner;
public class Fibonacci{
public Fibonacci(){
}
static int fibonacci (int n){
int actual = 0, ant1, ant2;
ant1 = ant2 = 1;
if ((n == 0) || (n == 1)) {
actual = 1;
} else{
for (i=2; i<=n; i++) {
actual = ant1 + ant2;
ant2 = ant1;
ant1 = actual;
}
}
}
public static void main(String args[]){
// Se crea un objeto de la clase Scanner para obtener un número desde el teclado
Scanner sc = new Scanner(System.in);
// Se declara una variable tipo entero que será enviada como parametro
int numConsola;
Fibonacci obj = new Fibonacci();
System.out.println("Escribe un entero para obtener su Fibonacci = ");
numConsola = sc.nextInt();
System.out.println("El fibonacci de "+numConsola+" es = "+obj.fibonacci(numConsola));
}
}
Cada solución tiene sus ventajas y desventajas, por ejemplo, dada la naturaleza del algoritmo (recursivo), la solución recursiva es la más obvia y sencilla de codificar, pero al hacer tantas llamadas a la función fibonacci, satura rapidamente la memoria provocando desbordamientos.
Otro ejemplo de un algoritmo de naturaleza recursiva es el que se utiliza para obtener el factorial de un número.
En cambio la solución iterativa no es tan obvia y requiere más codificación para ser implementada, sin embargo requiere menos memoria para realizar su trabajo.
Nota: La clase "Scanner" está disponible a partir del Java Development Kit (JDK) 1.5 en adelante, si estas trabajando con el JDK 1.4 no utilices esa clase, solo enviale un entero como parámetro a la función fibonacci.
Espero te sea de utilidad, suerte y diviertete mucho con Java...
2007-03-15 02:35:53
·
answer #2
·
answered by Fairy_Linux 2
·
1⤊
0⤋
abres eclipse.
file->new -> new project
archivo->nuevo -> nuevo proyecto
aparece una ventanita que en general pregunta que tipo de proyecto quieres seleccionas
java-> java project
das clic en next.
luego te pide el nombre del proyecto
escribes
Fibonacci
y das clic en finish o finalizar.
vuelves a dar clic en el menu de archivo y
seleccionas
nuevo->clase
aparece una ventana y solo escribes
Fibonacci donde dice nombre
y das clic en finalizar.
y luego escribes en el editor lo siguiente
public class Fibonacci {
public static long fib(int n) {
if (n <= 1) return n;
else return fib(n-1) + fib(n-2);
}
public static void main(String[] args) {
int N = 5;
for (int i = 1; i <= N; i++)
System.out.println(i + ": " + fib(i));
}
}
luego en el menu de run
das clic en run as->java aplication
listo.
o seria algo asi como ejecutar->ejecutar como->aplicación de java.
la verdad no se mucho por que siempre prefiero compilar a mano. con javac.
suerte.
2007-03-12 19:16:04
·
answer #3
·
answered by Gral. Emiliano Zapata 5
·
0⤊
0⤋