lunes, 29 de abril de 2013

Factoriales y Números de Fibonacci en java.

El siguiente programa en java recibe un número entero positivo. Si el número es par, se imprime el factorial, de lo contrario se imprime el número de fibonacci correspondiente a dicho entero. En los comentarios se esbozan los algoritmos.
Éste archivo debe guardarse con el nombre Main.

/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* Programa que recibe un entero positivo y verifica si es par +
* o impar                                                     *
* Si es par                                                   *
*   Se calcula e imprime el factorial del numero              *
* Si es impar                                                 *
*   Se calcula e imprime los primeros n numeros de fibonacci  *
*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

import java.util.Scanner;

public class Main
{  // Abre clase Main
public static void main(String args[])
{  // Abre main

int n = 0; // Esta variable almacenara el numero
Scanner entrada = new Scanner(System.in);

while ( 0 >= n )
 // con este condicional while se garantiza que el usuario introduzca numeros positivos.
{  // Abre while
System.out.print("\nPor favor introduzca un numero entero. Si el numero es par ");
System.out.print("se imprimira el factorial, de lo contrario, se imprimiran los primeros n terminos ");
System.out.println("de la serie de Fibonacci. "); 
n = entrada.nextInt();

}  // Cierra while

if ( 0 == n%2 )  // Si el numero es par
System.out.printf("\nEl factorial del numero es: %d\n\n", factorial(n));
else  // Si el numero es impar
fibonacci(n);

}  // Cierra main

///////////////////////////////
//Metodo fibonacci
//////////////////////////////

/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 *                                                                             *
 *                              ALGORITMO                                      *
 *                              _________                                      *
 *                                                                             *
 * El primer numero de fibonacci (fib1) es 0                                   *
 * El segundo numero de Fibonacci (fib2) es 1                                  *
 *                                                                             *
 * Si el usuario introduce 1 o 2, entonces es necesario desplegar f1 o f2      *
 * Si el usuario introduce un entero positivo mayor que 2, entonces            *
 *     desde 2 hasta n (el numero introducido)                                 *
 *     fibn = fib1 + fib2                                                      *
 *     temp =  fib2                                                            *
 *     fib2 = fibn                                                             *
 *     fib1 = temp                                                             *
 *                                                                             *
 * Imprimir el valor de fibn                                                   * 
 *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

public static void fibonacci( int x)
{  // Abre Metodo fibonacci

int fib1 = 0;
int fib2 = 1;
int fibn;

if (1 != x)
{  // Abre if
System.out.printf("\nEl primer numero de Fibonacci es: %d", fib1);
System.out.printf("\nEl segundo numero de Fibonacci es: %d", fib2);

for ( int i = 3; i <= x; i++ )
{  // Abre for
fibn = fib2 + fib1;
fib1 = fib2;
fib2 = fibn;

System.out.printf("\nEl numero de Fibonacci %d es %d", i, fibn);

}  // Cierra for  
System.out.println();
}  // Cierra if
else
System.out.println("\nEl primer numero de Fibonacci es: 0");


}  // Cierra Metodo fibonacci


/////////////////////////////////////////////////////
//Metodo factorial
/////////////////////////////////////////////////////

/*++++++++++++++++++++++++++++++++++++++++++++++++++*
*                                                   *
* fact = 1;                                         *
* Desde i = 1 hasta i = n                           *
*    fact = fact * i;                               *
*    i  =  i + 1;                                   *
*+++++++++++++++++++++++++++++++++++++++++++++++++++*/

public static int factorial( int n)
{  // Abre metodo factorial
int i; // La variable i servira como contador
int fact = 1; // Esta variable almacena el factorial

for ( i = 1; i <= n; i++ )
fact *= i;

return fact; // El valor de retorno es el factorial
}  // Cierra metodo factorial

}  // Cierra clase Main

Abajo aparece un par de ejecuciones del programa, una con un número par y otra con un número impar.

[hernandez@localhost Programas]$ java Main

Por favor introduzca un numero entero. Si el numero es par, se imprimira el factorial, de lo contrario, se imprimiran los primeros n terminos de la serie de Fibonacci. 
4

El factorial del numero es: 24

[hernandez@localhost Programas]$ java Main

Por favor introduzca un numero entero. Si el numero es par se imprimira el factorial, de lo contrario, se imprimiran los primeros n terminos de la serie de Fibonacci. 
7

El primer numero de Fibonacci es: 0
El segundo numero de Fibonacci es: 1
El numero de Fibonacci 3 es 1
El numero de Fibonacci 4 es 2
El numero de Fibonacci 5 es 3
El numero de Fibonacci 6 es 5
El numero de Fibonacci 7 es 8

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...