Exemplo de cálculo de Fibonacci e Factorial con fíos
Ir a la navegación
Ir a la búsqueda
Tarefa
Fai un programa que calcule o factorial e un número da sucesión de Fibonacci.
Cada un dos cálculos ten que ser realizado por un fío independente. As clases que implementen cada fío teñen que chamarse Factorial e Fibonacci.
Impleméntao mediante o uso da interface Runnable.
Variante posible
Faino herdando da clase Thread
Solución
1 public class Ex010Fibonacci implements Runnable{ 2 int numero; 3 int fibonacci=0; 4 Ej1bFibonacci (int numero){ 5 this.numero=numero; 6 }//constructor 7 8 9 public void run(){ 10 //fib(0)=0; fib(1)=1; fib(n)=fib(n-1)+fib(n-2) 11 int fibn=0; 12 int fib0=0; 13 int fib1=1; 14 if(numero==0) 15 fibonacci=0; 16 else{ 17 if (numero==1) 18 fibonacci=1; 19 else{ 20 21 22 for (int i = 2; i <= numero; i++) { 23 fibn = fib0 + fib1; 24 fib0 = fib1; 25 fib1 = fibn; 26 }//for 27 fibonacci=fibn;//É o último calculado 28 }//else 29 }//else 30 System.out.println("O resultado de Fibonacci do numero:"+numero+" é "+fibonacci); 31 }//run 32 33 }//class
1 public class Ex010Factorial implements Runnable { 2 int numero; 3 int factorial=1; 4 Ej1bFactorial (int numero){ 5 this.numero=numero; 6 }//constructor 7 8 9 public void run(){ 10 for(int i=1;i<=numero;i++){ 11 factorial=factorial*i; 12 }//for 13 System.out.println("O Factorial de :"+numero+" é "+factorial); 14 }//run 15 }
1 public class Ex010Main { 2 public static void main(String[]args){ 3 Ex010Factorial Fact = new Ex010Factorial(5); 4 Thread hiloFact=new Thread(Fact); 5 hiloFact.start(); 6 7 Ex010Fibonacci Fib = new Ex010Fibonacci(8); 8 Thread hiloFib= new Thread(Fib); 9 hiloFib.start(); 10 try{ 11 hiloFact.join(); 12 hiloFib.join(); 13 }catch(InterruptedException e) 14 { 15 System.out.println("Excepción InterruptedException"); 16 } 17 18 }//main 19 }//class