jtentor icon

Queue (en Java) de Estructura de Datos - CasoEjemplo_a.java

jtentor | PRO | 10/05/20 09:57:48 PM UTC | 0 ⭐ | 2615 👁️ | Never ⏰ | []
Java |

2.4 KB

|

None

|

0 👍

/

0 👎

//
// Created by Julio Tentor <[email protected]>
//
 
/*
 
Encolar números en una cola hasta que se ingrese el número 99;
luego desencolarlos y hacer lo siguiente: calcular el factorial
de los números positivos, sumar los negativos y contar los ceros.
 
 */
 
import java.util.Random;
 
public class CasoEjemplo_a {
 
    private static Random random = new Random();
 
    public void Run() {
 
        System.out.println("Trabajo Práctico Nº 3 - Caso Ejemplo a)\n");
 
        Queue<Integer> numbers1 = new Queue<Integer>(10);
        Queue<Integer> numbers2 = new Queue<Integer>(10);
 
        int number = 0;
 
        StringBuilder sb = new StringBuilder();
        for (int count = random.nextInt(20) + 1; count > 0; --count) {
 
            number = random.nextInt(50) - 25;
            if (number == 99) {
                break;
            }
            sb.append(number +" ");
 
            try {
                numbers1.add(number);
            } catch (Exception exception) {
                System.out.println("Excepción atrapada para numbers1 " + exception.getMessage() );
            }
 
            try {
                numbers2.offer(number);
            } catch (Exception exception) {
                System.out.println("Excepción atrapada para numbers2 " + exception.getMessage() );
            }
        }
        System.out.println("\nGenerados: " + sb.toString());
 
        System.out.println("Cola numbers1 (" + numbers1.size() +") " + numbers1.toString());
        System.out.println("Cola numbers2 (" + numbers2.size() +") " + numbers2.toString());
 
        int negativeSum = 0;
        int zeroCount = 0;
 
        while (!numbers1.isEmpty()) {
            number = numbers1.remove();
            System.out.print("\nNúmero: " + number);
            if (number == 0) {
                ++zeroCount;
                continue;
            }
            if (number > 0) {
                System.out.print(" Factorial: " + Factorial(number));
            } else {
                negativeSum += number;
            }
        }
        System.out.println("\n\nSuma de los negativos: " + negativeSum);
        System.out.println("Cuenta de los ceros..: " + zeroCount);
 
    }
 
    private long Factorial(int number) {
        long result = 1;
        for( ; number > 1; --number ) {
            result *= number;
        }
        return result;
    }
}
 
 
 

Comments