Ejercicio 16 – Comprobación de rango aleatorio
Enunciado
Escribe un programa qué pida un número entero al usuario y compruebe si dicho número está dentro del rango [a, b], donde a y b son números generados aleatoriamente.
Reglas del programa:
- Si el número está fuera del rango, no se realiza ninguna acción especial.
- Si el número está dentro del rango, se deben mostrar los valores de a y b.
- En todos los casos, al final se muestra el número introducido.
Explicación del ejercicio
1️⃣ Generación de números aleatorios
Math.random() genera un número decimal entre 0 y 1.
Para convertirlo en un número entero del 0 al 99:
(int)(Math.random() * 100)
2️⃣ Ajustar el rango [a, b]
Puede ocurrir qué a sea mayor qué b.
En ese caso intercambiamos valores:
if (a > b) intercambiamos a y b.
3️⃣ Comprobar el rango
Se usa una condición compuesta:
numero >= a && numero <= b
Solución en Java
import java.util.Scanner;
public class Ejercicio16 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Introduce un número entero: ");
int numero = sc.nextInt();
int a = (int)(Math.random() * 100);
int b = (int)(Math.random() * 100);
// Asegurar qué a <= b
if (a > b) {
int temp = a;
a = b;
b = temp;
}
if (numero >= a && numero <= b) {
System.out.println("El número está dentro del rango.");
System.out.println("a = " + a);
System.out.println("b = " + b);
}
System.out.println("Número introducido: " + numero);
}
}
Ejemplo de ejecución
Introduce un número entero: 50
a = 12
b = 78
El número está dentro del rango.
Número introducido: 50
Introduce un número entero: 5
a = 20
b = 60
Número introducido: 5