Exemplo de cálculo de Fibonacci e Factorial con fíos

De MediaWiki
Revisión del 17:22 26 oct 2021 de Joselv (discusión | contribuciones) (Página creada con «= 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…»)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
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