0% encontró este documento útil (0 votos)
5 vistas58 páginas

Ejercicios de Programación en Java

El documento presenta una serie de programas en Java que abordan diferentes problemas matemáticos y lógicos, como resolver ecuaciones de segundo grado, verificar múltiplos, ordenar números, contar dígitos, invertir números, calcular descuentos en un supermercado, sumar números hasta un cero, analizar edades y alturas de alumnos, dar cambios con monedas y calcular la calidad de gallinas. Cada programa incluye la lógica necesaria para interactuar con el usuario y procesar la información ingresada. Estos ejemplos son útiles para aprender y practicar programación en Java.

Cargado por

Ramiro Yujra
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas58 páginas

Ejercicios de Programación en Java

El documento presenta una serie de programas en Java que abordan diferentes problemas matemáticos y lógicos, como resolver ecuaciones de segundo grado, verificar múltiplos, ordenar números, contar dígitos, invertir números, calcular descuentos en un supermercado, sumar números hasta un cero, analizar edades y alturas de alumnos, dar cambios con monedas y calcular la calidad de gallinas. Cada programa incluye la lógica necesaria para interactuar con el usuario y procesar la información ingresada. Estos ejemplos son útiles para aprender y practicar programación en Java.

Cargado por

Ramiro Yujra
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

PROYECTO “CODIFICACIONES EN JAVA”

1. LEER LOS COEFICIENTES DE UNA ECUACIÓN DE SEGUNDO GRADO Y MOSTRAR SUS SOLUCIONES REALES, SI NO
EXISTEN DEBE INDICARLO.

import [Link];

public class EJER1 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Ecuación de Segundo Grado (ax^2 + bx + c = 0) ---");

[Link]("Ingrese el coeficiente 'a': ");

double a = [Link]();

[Link]("Ingrese el coeficiente 'b': ");

double b = [Link]();

[Link]("Ingrese el coeficiente 'c': ");

double c = [Link]();

double discriminante = b * b - 4 * a * c;

if (a == 0) {

if (b == 0) {

if (c == 0) {

[Link]("La ecuación tiene infinitas soluciones.");

} else {

[Link]("La ecuación no tiene solución (0 = " + c + ").");

} else {

// Ecuación lineal: bx + c = 0

double x = -c / b;

[Link]("Es una ecuación lineal. La solución es x = " + x);

} else if (discriminante > 0) {

double x1 = (-b + [Link](discriminante)) / (2 * a);

double x2 = (-b - [Link](discriminante)) / (2 * a);

[Link]("Las soluciones reales son:");

[Link]("x1 = " + x1);

[Link]("x2 = " + x2);

} else if (discriminante == 0) {

double x = -b / (2 * a);

[Link]("La ecuación tiene una única solución real:");

[Link]("x = " + x);

} else {

[Link]("La ecuación no tiene soluciones reales (las soluciones son complejas).");

}
}

[Link] DOS NÚMEROS Y VERIFICAR SI UNO ES MÚLTIPLO DEL OTRO O NO LO ES.

import [Link];

public class EJER2 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Verificar si un número es múltiplo del otro ---");

[Link]("Ingrese el primer número entero: ");

int num1 = [Link]();

[Link]("Ingrese el segundo número entero: ");

int num2 = [Link]();

if (num1 == 0 && num2 == 0) {

[Link]("Ambos números son cero, la relación de múltiplo no es clara en este caso.");

} else if (num2 != 0 && num1 % num2 == 0) {

[Link](num1 + " es múltiplo de " + num2);

} else if (num1 != 0 && num2 % num1 == 0) {

[Link](num2 + " es múltiplo de " + num1);

} else {

[Link]("Ninguno de los números es múltiplo del otro.");

[Link] TRES NÚMEROS ENTEROS Y SON DISTINTOS, MOSTRARLOS ORDENADOS DE MAYOR A MENOR.

import [Link];

public class EJER3 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);


[Link]("--- Ordenar tres números distintos de mayor a menor ---");

[Link]("Ingrese el primer número entero: ");

int num1 = [Link]();

[Link]("Ingrese el segundo número entero: ");

int num2 = [Link]();

[Link]("Ingrese el tercer número entero: ");

int num3 = [Link]();

if (num1 == num2 || num1 == num3 || num2 == num3) {

[Link]("Error: Los números deben ser distintos. Por favor, intente de nuevo.");

} else {

[Link]("Números ordenados de mayor a menor: ");

if (num1 > num2 && num1 > num3) {

[Link](num1 + ", ");

if (num2 > num3) {

[Link](num2 + ", " + num3);

} else {

[Link](num3 + ", " + num2);

} else if (num2 > num1 && num2 > num3) {

[Link](num2 + ", ");

if (num1 > num3) {

[Link](num1 + ", " + num3);

} else {

[Link](num3 + ", " + num1);

} else {

[Link](num3 + ", ");

if (num1 > num2) {

[Link](num1 + ", " + num2);

} else {

[Link](num2 + ", " + num1);

4. LEER UN NÚMERO ENTERO Y MOSTRAR CUANTOS DÍGITOS TIENE.


import [Link];

public class EJER4 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Contar dígitos de un número entero ---");

[Link]("Ingrese un número entero: ");

int numero = [Link]();

int contador = 0;

int numeroAbsoluto = [Link](numero);

if (numeroAbsoluto == 0) {

contador = 1;

} else {

while (numeroAbsoluto > 0) {

numeroAbsoluto /= 10;

contador++;

[Link]("El número " + numero + " tiene " + contador + " dígitos.");

5. LEER UN NÚMERO ENTERO Y MOSTRARLO CON LAS CIFRAS AL REVÉS.

import [Link];

public class EJER5 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Mostrar un número con las cifras al revés ---");

[Link]("Ingrese un número entero: ");

int numero = [Link]();

int numeroOriginal = numero;

int numeroInvertido = 0;
if (numeroOriginal == 0) {

[Link]("El número " + numeroOriginal + " al revés es: 0");

} else {

boolean esNegativo = false;

if (numero < 0) {

esNegativo = true;

numero = [Link](numero);

while (numero > 0) {

int digito = numero % 10;

numeroInvertido = numeroInvertido * 10 + digito;

numero /= 10;

if (esNegativo) {

numeroInvertido *= -1;

[Link]("El número " + numeroOriginal + " con las cifras al revés es: " + numeroInvertido);

6. UN SUPERMERCADO DECIDE EFECTUAR UNA PROMOCIÓN DE DESCUENTOS... LEER LAS COMPRAS EFECTUADAS
POR N CLIENTES Y APLICAR LOS DESCUENTOS PARA OBTENER EL TOTAL DE VENTAS EFECTUADAS Y EL TOTAL DE
VENTAS CON EL DESCUENTO RESPECTIVO.

import [Link];

public class EJER6 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Promoción de Descuentos en Supermercado ---");

[Link]("Ingrese la cantidad de clientes a procesar (n): ");

int numClientes = [Link]();

double totalVentasSinDescuento = 0;

double totalVentasConDescuento = 0;
for (int i = 1; i <= numClientes; i++) {

[Link]("\n--- Cliente " + i + " ---");

[Link]("Ingrese el total de la compra del cliente " + i + " (Bs.): ");

double totalCompra = [Link]();

double descuentoAplicado = 0;

if (totalCompra >= 500) {

descuentoAplicado = totalCompra * 0.08;

[Link]("Se aplica un 8% de descuento.");

} else if (totalCompra >= 100) {

descuentoAplicado = totalCompra * 0.05;

[Link]("Se aplica un 5% de descuento.");

} else {

[Link]("No se aplica ningún descuento.");

double totalConDescuento = totalCompra - descuentoAplicado;

[Link]("Total de la compra (sin descuento): " + [Link]("%.2f", totalCompra) + " Bs.");

[Link]("Descuento aplicado: " + [Link]("%.2f", descuentoAplicado) + " Bs.");

[Link]("Total a pagar (con descuento): " + [Link]("%.2f", totalConDescuento) + "


Bs.");

totalVentasSinDescuento += totalCompra;

totalVentasConDescuento += totalConDescuento;

[Link]("\n--- Resumen de Ventas ---");

[Link]("Total de ventas efectuadas (sin descuento): " + [Link]("%.2f",


totalVentasSinDescuento) + " Bs.");

[Link]("Total de ventas con el descuento respectivo: " + [Link]("%.2f",


totalVentasConDescuento) + " Bs.");

}
7. PEDIR NÚMEROS ENTEROS HASTA QUE SE DIGITE UN 0, MOSTRAR LA SUMA DE TODOS LOS NÚMEROS
INTRODUCIDOS.

import [Link];

public class EJER7 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Suma de números hasta digitar 0 ---");

[Link]("Ingrese números enteros (ingrese 0 para finalizar):");

int suma = 0;

int numero;

do {

[Link]("Ingrese un número: ");

numero = [Link]();

suma += numero;

} while (numero != 0);

[Link]("La suma de todos los números introducidos es: " + suma);

}
8. DADAS LAS EDADES Y ALTURAS DE N ALUMNOS, MOSTRAR LA EDAD Y LA ESTATURA MEDIA, LA CANTIDAD DE
ALUMNOS MAYORES DE 18 AÑOS, Y LA CANTIDAD DE ALUMNOS QUE MIDEN MÁS DE 1.75 CM.

import [Link];

public class EJER8 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Análisis de Edades y Alturas de Alumnos ---");

[Link]("Ingrese la cantidad de alumnos (n): ");

int numAlumnos = [Link]();

if (numAlumnos <= 0) {

[Link]("No hay alumnos para procesar.");

[Link]();

return;

double sumaEdades = 0;

double sumaAlturas = 0;

int alumnosMayores18 = 0;

int alumnosMas175cm = 0;

for (int i = 1; i <= numAlumnos; i++) {

[Link]("\n--- Alumno " + i + " ---");

[Link]("Ingrese la edad del alumno " + i + ": ");

int edad = [Link]();

[Link]("Ingrese la altura del alumno " + i + " (en metros, ej. 1.75): ");

double altura = [Link]();

sumaEdades += edad;

sumaAlturas += altura;

if (edad > 18) {

alumnosMayores18++;

if (altura > 1.75) {

alumnosMas175cm++;

double edadMedia = sumaEdades / numAlumnos;

double estaturaMedia = sumaAlturas / numAlumnos;

[Link]("\n--- Resultados ---");


[Link]("Edad media: " + [Link]("%.2f", edadMedia) + " años");

[Link]("Estatura media: " + [Link]("%.2f", estaturaMedia) + " metros");

[Link]("Cantidad de alumnos mayores de 18 años: " + alumnosMayores18);

[Link]("Cantidad de alumnos que miden más de 1.75 cm: " + alumnosMas175cm);

9. DISPONEMOS DE UNA MÁQUINA QUE PUEDE DAR CAMBIOS CON 5 TIPOS DE MONEDAS DISTINTAS: 5 BS., 1
BS., 0.50 BS., 0.20 BS. Y 0.10 BS. REALIZAR EL PROGRAMA EN EL QUE, DADO EL PRECIO DEL ARTÍCULO Y LA
CANTIDAD EN BOLIVIANOS ENTREGADA POR EL CONSUMIDOR, SE INDIQUE EL CAMBIO A ENTREGAR EMPLEANDO
EL MENOR NÚMERO POSIBLE DE MONEDAS

import [Link];

public class EJER9 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Máquina de Cambio de Monedas ---");

[Link]("Ingrese el precio del artículo (Bs.): ");

double precio = [Link]();

[Link]("Ingrese la cantidad de dinero entregada (Bs.): ");

double entregado = [Link]();

if (entregado < precio) {

[Link]("El dinero entregado es insuficiente.");

[Link]();

return;

double cambio = entregado - precio;

[Link]("\nCambio a entregar: " + [Link]("%.2f", cambio) + " Bs.");

[Link]("Desglose del cambio (menor número de monedas):");

int cambioEnCentavos = (int) [Link](cambio * 100);

int[] monedasValores = {500, 100, 50, 20, 10};

String[] monedasNombres = {"5 Bs.", "1 Bs.", "0.50 Bs.", "0.20 Bs.", "0.10 Bs."};
for (int i = 0; i < [Link]; i++) {

int numMonedas = cambioEnCentavos / monedasValores[i];

if (numMonedas > 0) {

[Link]("- " + numMonedas + " moneda(s) de " + monedasNombres[i]);

cambioEnCentavos %= monedasValores[i];

if (cambioEnCentavos > 0) {

[Link]("Sobran " + [Link]("%.2f", (double)cambioEnCentavos / 100) + " Bs. que no


pueden ser entregados con las monedas disponibles.");

[Link] UNA GRANJA SE REQUIERE DETERMINAR EL PROMEDIO DE CALIDAD DE LAS N GALLINAS QUE HAY EN LA
GRANJA. LA CALIDAD DE CADA GALLINA SE OBTIENE SEGÚN LA FÓRMULA: CALIDAD = (PESO DE LA GALLINA *
ALTURA DE LA GALLINA) / NÚMERO DE HUEVOS QUE PONE.

import [Link];

public class EJER10 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Promedio de Calidad de Gallinas ---");

[Link]("Ingrese la cantidad de gallinas (n): ");

int numGallinas = [Link]();

if (numGallinas <= 0) {

[Link]("No hay gallinas para procesar.");

[Link]();

return;

double sumaCalidadTotal = 0;

int gallinasValidas = 0;

for (int i = 1; i <= numGallinas; i++) {

[Link]("\n--- Gallina " + i + " ---");

[Link]("Ingrese el peso de la gallina " + i + " (kg): ");


double peso = [Link]();

[Link]("Ingrese la altura de la gallina " + i + " (centimetro): ");

double altura = [Link]();

[Link]("Ingrese el número de huevos que pone la gallina " + i + ": ");

int numHuevos = [Link]();

if (numHuevos > 0) {

double calidad = (peso * altura) / numHuevos;

[Link]("Calidad de la gallina " + i + ": " + [Link]("%.2f", calidad));

sumaCalidadTotal += calidad;

gallinasValidas++;

} else {

[Link]("La gallina " + i + " puso 0 huevos. No se puede calcular su calidad individual para
el promedio.");

if (gallinasValidas > 0) {

double promedioCalidad = sumaCalidadTotal / gallinasValidas;

[Link]("\n--- Resultado General ---");

[Link]("El promedio de calidad de las gallinas es: " + [Link]("%.2f",


promedioCalidad));

} else {

[Link]("\nNo se pudo calcular un promedio de calidad ya que ninguna gallina puso


huevos.");

11. EN UNA TIENDA COMERCIAL, LAS AMAS DE CASA COMPRAN DIVERSOS ARTÍCULOS... AYUDE A ESTA AMA DE
CASA A OBTENER EL TOTAL DE SUS COMPRAR, LUEGO DE LLENAR EL CARRITO DE MANOS CON TODOS LOS
ARTÍCULOS DE PRIMERA NECESIDAD.

import [Link];

public class EJER11{

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);


[Link]("--- Calculadora de Compras para Ama de Casa ---");

double totalCompra = 0;

boolean continuarComprando = true;

int numArticulo = 1;

while (continuarComprando) {

[Link]("\n--- Artículo " + numArticulo + " ---");

[Link]("Ingrese el precio del artículo: ");

double precio = [Link]();

[Link]("Ingrese la cantidad de este artículo: ");

int cantidad = [Link]();

double costoArticulo = precio * cantidad;

[Link]("Costo por este artículo: " + [Link]("%.2f", costoArticulo) + " Bs.");

totalCompra += costoArticulo;

[Link]("¿Desea agregar otro artículo? (s/n): ");

String respuesta = [Link]().toLowerCase();

if (![Link]("s")) {

continuarComprando = false;

numArticulo++;

[Link]("\n--- Resumen de la Compra ---");

[Link]("El total a pagar por todos los artículos es: " + [Link]("%.2f", totalCompra) + "
Bs.");

12. CREAR UN ALGORITMO QUE INDIQUE SI UN NÚMERO ES PERFECTO O NO. SE DICE QUE UN NÚMERO ES
PERFECTO SI LA SUMA DE SUS DIVISORES ES IGUAL AL NÚMERO.
import [Link];

public class EJER12{

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Verificar si un número es perfecto ---");

[Link]("Ingrese un número entero positivo: ");

int numero = [Link]();

if (numero <= 0) {

[Link]("Por favor, ingrese un número entero positivo.");

} else {

int sumaDivisores = 1; // 1 siempre es divisor

[Link]("Divisores de " + numero + ": 1");

for (int i = 2; i <= numero / 2; i++) {

if (numero % i == 0) {

sumaDivisores += i;

[Link](", " + i);

[Link]();

if (sumaDivisores == numero) {

[Link]("El número " + numero + " es un número PERFECTO.");

} else {

[Link]("El número " + numero + " NO es un número perfecto (Suma de divisores: " +
sumaDivisores + ").");

13. LEER M NÚMEROS E IMPRIMIR CUÁNTOS SON POSITIVOS, CUÁNTOS NEGATIVOS Y CUÁNTOS NEUTROS.

import [Link];

public class EJER13{

public static void main(String[] args) {


Scanner scanner = new Scanner([Link]);

[Link]("--- Clasificación de Números (Positivos, Negativos, Neutros) ---");

[Link]("¿Cuántos números desea ingresar (M)? ");

int M = [Link]();

int positivos = 0;

int negativos = 0;

int neutros = 0;

for (int i = 1; i <= M; i++) {

[Link]("Ingrese el número " + i + ": ");

int numero = [Link]();

if (numero > 0) {

positivos++;

} else if (numero < 0) {

negativos++;

} else {

neutros++;

[Link]("\n--- Resultados ---");

[Link]("Cantidad de números positivos: " + positivos);

[Link]("Cantidad de números negativos: " + negativos);

[Link]("Cantidad de números neutros (ceros): " + neutros);

14. REALIZAR UN ALGORITMO PARA CALCULAR: SUM_I=1 (2I+3)

import [Link];

public class EJER14 {

public static void main(String[] args) {

[Link]("--- Cálculo de Sumatoria: Σ(i+3) desde i=1 hasta 2 ---");


int sumatoria = 0;

for (int i = 1; i <= 2; i++) {

sumatoria += (i + 3);

[Link]("El resultado de la sumatoria es: " + sumatoria);

15. REALIZAR UN ALGORITMO PARA CALCULAR: PROD_J=2, j3+PROD_K-3, k /3

public class EJER15 {

public static void main(String[] args) {

[Link]("--- Cálculo de Productos: (Π j de j=2 a 3) + (Π k/3 de k=3 a 7) ---");

// Primer producto: Π j de j=2 a 3

double producto1 = 1;

for (int j = 2; j <= 3; j++) {

producto1 *= j;

[Link]("Primer producto (Π j de j=2 a 3): " + producto1);

// Segundo producto: Π k/3 de k=3 a 7

double producto2 = 1.0; // Usar double para la división

for (int k = 3; k <= 7; k++) {

producto2 *= ((double) k / 3);

[Link]("Segundo producto (Π k/3 de k=3 a 7): " + producto2);

double resultadoFinal = producto1 + producto2;

[Link]("El resultado final es: " + resultadoFinal);

16. LEER 25 NÚMEROS Y MOSTRAR CUÁNTOS DE ELLOS SON NÚMEROS PRIMOS.

import [Link];
public class EJER16 {

public static boolean esPrimo(int num) {

if (num <= 1) {

return false;

for (int i = 2; i * i <= num; i++) {

if (num % i == 0) {

return false;

return true;

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Contar números primos entre 25 números ---");

int cantidadPrimos = 0;

final int TOTAL_NUMEROS = 25;

for (int i = 1; i <= TOTAL_NUMEROS; i++) {

[Link]("Ingrese el número " + i + ": ");

int numero = [Link]();

if (esPrimo(numero)) {

[Link](numero + " es un número primo.");

cantidadPrimos++;

} else {

[Link](numero + " NO es un número primo.");

[Link]("\n--- Resumen ---");

[Link]("De los " + TOTAL_NUMEROS + " números ingresados, " + cantidadPrimos + " son
primos.");

}
17. REALIZAR UN ALGORITMO PARA CALCULAR: sum_k=2, k i=1, 2i

import [Link];

public class EJER17{

public static void main(String[] args) {

int suma = 0;

for (int k = 2; k <= 6; k++) {

int producto = 1;

for (int i = 1; i <= 4; i++) {

producto *= 2 * i;

suma += producto;

[Link]("El resultado de la suma es: " + suma);

18. SUPONGA QUE SE TIENE UN CONJUNTO DE CALIFICACIONES DE UN GRUPO DE 40 ALUMNOS. REALIZAR UN


ALGORITMO PARA CALCULAR LA CALIFICACIÓN MEDIA Y LA CALIFICACIÓN MÁS BAJA DE TODO EL GRUPO.

import [Link];

public class EJER18{

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Análisis de Calificaciones de Alumnos ---");

final int NUM_ALUMNOS = 40;


double sumaCalificaciones = 0;

double calificacionMasBaja = Double.MAX_VALUE;

for (int i = 1; i <= NUM_ALUMNOS; i++) {

[Link]("Ingrese la calificación del alumno " + i + " (0-100): ");

double calificacion = [Link]();

if (calificacion < 0 || calificacion > 100) {

[Link]("Calificación inválida. Por favor, ingrese un valor entre 0 y 100.");

i--;

continue;

sumaCalificaciones += calificacion;

if (calificacion < calificacionMasBaja) {

calificacionMasBaja = calificacion;

double calificacionMedia = sumaCalificaciones / NUM_ALUMNOS;

[Link]("\n--- Resultados del Grupo ---");

[Link]("Calificación media del grupo: " + [Link]("%.2f", calificacionMedia));

[Link]("Calificación más baja del grupo: " + [Link]("%.2f", calificacionMasBaja));

19. GENERAR LA TABLA DE MULTIPLICACIÓN DEL 1 AL 9.

import [Link];

public class EJER19 {

public static void main(String[] args) {

[Link]("--- Tabla de Multiplicar del 1 al 9 ---");

for (int i = 1; i <= 9; i++) {


[Link]("\n--- Tabla del " + i + " ---");

for (int j = 1; j <= 10; j++) { // Generalmente hasta 10 para tablas

[Link](i + " x " + j + " = " + (i * j));

20. DADO UN NÚMERO N ENTERO POSITIVO, CONTAR EL NÚMERO DE DÍGITOS IMPARES, PARES, PRIMOS,
MÚLTIPLOS DE 3 Y MÚLTIPLOS DE 4 QUE ESTE CONTIENE.

import [Link];

public class EJER20 {

public static boolean esPrimoDigito(int digito) {

if (digito <= 1) return false;

if (digito == 2 || digito == 3 || digito == 5 || digito == 7) return true;

return false;

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Análisis de Dígitos de un Número Entero Positivo ---");

[Link]("Ingrese un número entero positivo (N): ");

int N = [Link]();

if (N < 0) {

[Link]("Por favor, ingrese un número entero POSITIVO.");

[Link]();

return;

if (N == 0) {

[Link]("El número 0 tiene 1 dígito par, 0 impares, 0 primos, 1 múltiplo de 3, 1 múltiplo de


4.");

[Link]();

return;
}

int tempN = N;

int pares = 0;

int impares = 0;

int primos = 0;

int mul3 = 0;

int mul4 = 0;

while (tempN > 0) {

int digito = tempN % 10;

if (digito % 2 == 0) {

pares++;

} else {

impares++;

if (esPrimoDigito(digito)) {

primos++;

if (digito != 0 && digito % 3 == 0) {

mul3++;

} else if (digito == 0) {

if (digito != 0 && digito % 4 == 0) {

mul4++;

tempN /= 10;

[Link]("\n--- Resultados para N = " + N + " ---");

[Link]("Pares = " + pares);

[Link]("Impares = " + impares);

[Link]("Primos = " + primos);

[Link]("Mul3 = " + mul3);

[Link]("Mul4 = " + mul4);

}
21. DISEÑE UN ALGORITMO PARA DETERMINAR EL MAYOR DE N NÚMEROS LEÍDOS DESDE TECLADO.

import [Link];

public class EJER21 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Encontrar el Mayor de N Números ---");

[Link]("¿Cuántos números desea ingresar (N)? ");

int N = [Link]();

if (N <= 0) {

[Link]("Debe ingresar al menos un número.");

[Link]();

return;

double mayor = Double.MIN_VALUE;

for (int i = 1; i <= N; i++) {

[Link]("Ingrese el número " + i + ": ");

double numero = [Link]();

if (numero > mayor) {

mayor = numero;

[Link]("\nEl número mayor ingresado es: " + mayor);

}
22. CALCULAR Y VISUALIZAR LA SUMA Y EL PRODUCTO DE LOS NÚMEROS PARES COMPRENDIDOS ENTRE 200 Y
4000 (AMBOS INCLUSIVE).

import [Link];

public class EJER22 {

public static void main(String[] args) {

[Link]("--- Suma y Producto de Números Pares entre 200 y 4000 ---");

long sumaPares = 0;

long productoPares = 1;

for (int i = 200; i <= 4000; i++) {

if (i % 2 == 0) {

sumaPares += i;

productoPares *= i;

[Link]("La suma de los números pares es: " + sumaPares);

[Link]("El producto de los números pares es: " + productoPares);

23. DADO UN NÚMERO N, DETERMINAR EL DÍGITO MAYOR Y EL DÍGITO MENOR, Y LUEGO INTERCAMBIARLOS.

import [Link];

public class EJER23 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Intercambiar el dígito mayor y menor de un número ---");

[Link]("Ingrese un número entero positivo (n): ");

int n = [Link]();
if (n < 0) {

[Link]("Por favor, ingrese un número entero POSITIVO.");

[Link]();

return;

if (n < 10) {

[Link]("El número tiene un solo dígito. No hay nada que intercambiar.");

[Link]("Nuevo número = " + n);

[Link]();

return;

int tempN = n;

int mayorDigito = -1;

int menorDigito = 10;

while (tempN > 0) {

int digito = tempN % 10;

if (digito > mayorDigito) {

mayorDigito = digito;

if (digito < menorDigito) {

menorDigito = digito;

tempN /= 10;

if (mayorDigito == menorDigito) {

[Link]("Todos los dígitos son iguales. Nuevo número = " + n);

[Link]();

return;

[Link]("Dígito Mayor = " + mayorDigito + ", Dígito Menor = " + menorDigito);

int nuevoNumero = 0;

int potenciaDiez = 1;

tempN = n;

while (tempN > 0) {

int digito = tempN % 10;

if (digito == mayorDigito) {

nuevoNumero += (menorDigito * potenciaDiez);

} else if (digito == menorDigito) {

nuevoNumero += (mayorDigito * potenciaDiez);

} else {

nuevoNumero += (digito * potenciaDiez);


}

potenciaDiez *= 10;

tempN /= 10;

String numStr = [Link](n);

String nuevoNumStr = "";

char charMayor = (char)(mayorDigito + '0');

char charMenor = (char)(menorDigito + '0');

for (int i = 0; i < [Link](); i++) {

char c = [Link](i);

if (c == charMayor) {

nuevoNumStr += charMenor;

} else if (c == charMenor) {

nuevoNumStr += charMayor;

} else {

nuevoNumStr += c;

nuevoNumero = [Link](nuevoNumStr);

[Link]("Nuevo número = " + nuevoNumero);

24. GENERAR LA SIGUIENTE SERIE: 1,2,2,3,3,3,4,4,4,4,5,5,5,5,5…………………….

import [Link];

public class EJER24 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Generar Serie Numérica (1,2,2,3,3,3...) ---");

[Link]("Ingrese hasta qué número desea generar la serie: ");

int limiteNumero = [Link]();

[Link]("Serie generada: ");

for (int i = 1; i <= limiteNumero; i++) {

for (int j = 1; j <= i; j++) {

[Link](i);
if (!(i == limiteNumero && j == i)) {

[Link](",");

[Link]();

25. DISEÑE UN ALGORITMO PARA DETERMINAR EL PROMEDIO, EL NÚMERO MAYOR, EL MENOR, CUÁNTOS
NÚMEROS SON MÚLTIPLOS DE 2 Y 3 DE N NÚMEROS LEÍDOS DESDE TECLADO.

import [Link];

public class EJER25 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Análisis Completo de N Números ---");

[Link]("¿Cuántos números desea ingresar (N)? ");

int N = [Link]();

if (N <= 0) {

[Link]("Debe ingresar al menos un número.");

[Link]();

return;

double suma = 0;

double mayor = Double.MIN_VALUE;

double menor = Double.MAX_VALUE;

int multiplos2y3 = 0;

[Link]("Ingrese los " + N + " números:");

for (int i = 1; i <= N; i++) {

[Link]("Número " + i + ": ");

double numero = [Link]();

suma += numero;
if (numero > mayor) {

mayor = numero;

if (numero < menor) {

menor = numero;

if (numero % 2 == 0 && numero % 3 == 0) {

multiplos2y3++;

}double promedio = suma / N;

[Link]("\n--- Resultados del Análisis ---");

[Link]("Promedio = " + [Link]("%.3f", promedio));

[Link]("Mayor: " + mayor);

[Link]("Menor: " + menor);

[Link]("Múltiplos de 2 y 3: " + multiplos2y3);

26. DISEÑE UN ALGORITMO QUE IMPRIMA: 0, 2, 1, 3, 1, 5, 2, 7, 3, 11, 5, 13, 8, 17, 13 ..............

import [Link];

public class EJER26 {

public static boolean esPrimo(int num) {

if (num <= 1) {

return false;

for (int i = 2; i * i <= num; i++) {

if (num % i == 0) {

return false;

return true;
}

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Generar Serie Mixta (Fibonacci y Primos) ---");

[Link]("¿Cuántos elementos de la serie desea generar? ");

int numElementos = [Link]();

if (numElementos <= 0) {

[Link]("Por favor, ingrese un número positivo de elementos.");

[Link]();

return;

long a = 0, b = 1;

int contFib = 0;

int numPrimo = 2;

int contPrimo = 0;

[Link]("Serie: ");

for (int i = 0; i < numElementos; i++) {

if (i % 2 == 0) {

if (contFib == 0) {

[Link](a);

} else if (contFib == 1) {

[Link](b);

} else {

long nextFib = a + b;

[Link](nextFib);

a = b;

b = nextFib;

contFib++;

} else {

while (!esPrimo(numPrimo)) {

numPrimo++;

[Link](numPrimo);

numPrimo++;

if (i < numElementos - 1) {

[Link](", ");
}

[Link]();

27. DADO UN RANGO (A Y B) DE NÚMEROS ENTEROS, OBTENER LA CANTIDAD DE NÚMEROS PARES QUE
CONTIENE DICHO RANGO.

import [Link];

public class EJER27{

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Contar números pares en un rango ---");

[Link]("Ingrese el inicio del rango (A): ");

int A = [Link]();

[Link]("Ingrese el final del rango (B): ");

int B = [Link]();

if (A > B) {

[Link]("El inicio del rango no puede ser mayor que el final. Intercambiando valores...");

int temp = A;

A = B;

B = temp;

[Link]("Nuevo rango: [" + A + ", " + B + "]");

int contadorPares = 0;

for (int i = A; i <= B; i++) {

if (i % 2 == 0) {

contadorPares++;

[Link]("En el rango de [" + A + ", " + B + "], hay " + contadorPares + " números pares.");

}
28. CONVERTIR UN NÚMERO DE BASE N A BASE 10 (EMPLEAR EL TEOREMA FUNDAMENTAL DE LA NUMERACIÓN).

import [Link];

public class EJER28{

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Conversor de Base N a Base 10 ---");

[Link]("Ingrese el número en base N (como cadena de texto, ej. 1A para hexadecimal): ");

String numeroEnBaseN = [Link]().toUpperCase();

[Link]("Ingrese la base N (ej. 2 para binario, 16 para hexadecimal): ");

int baseN = [Link]();

if (baseN < 2 || baseN > 36) {

[Link]("La base debe estar entre 2 y 36.");

[Link]();

return;

long numeroEnBase10 = 0;

long potencia = 1;

for (int i = [Link]() - 1; i >= 0; i--) {

char caracter = [Link](i);

int valorDigito;

if (caracter >= '0' && caracter <= '9') {

valorDigito = caracter - '0';

} else if (caracter >= 'A' && caracter <= 'Z') {

valorDigito = caracter - 'A' + 10;

} else {

[Link]("Carácter inválido en el número para la base " + baseN + ": " + caracter);

[Link]();

return;

if (valorDigito >= baseN) {


[Link]("El dígito '" + caracter + "' no es válido para la base " + baseN + ".");

[Link]();

return;

numeroEnBase10 += (valorDigito * potencia);

potencia *= baseN;

[Link]("El número " + numeroEnBaseN + " en base " + baseN + " es " + numeroEnBase10 + "
en base 10.");

29. ESCRIBE UNA FUNCION QUE TOME 3 PARAMETROS: 2 DE TIPO ENTEROS Y 1 DE TIPO CARÁCTER. LA FUNCION
DEBERA SUMAR, RESTAR, MULTIPLICAR O DIVIDIRLOS VALORES DE LOS 2 PRIMEROS PARAMETROS DEPENDIENDO
DEL CODIGO INDICADO EN EL TERCER PARAMETRO, Y DEVOLVER EL RESULTADO.

import [Link];

public class EJER29 {

public static void main(String[] args) {

Scanner sc = new Scanner([Link]);

[Link]("Ingrese el primer número entero: ");

int num1 = [Link]();

[Link]("Ingrese el segundo número entero: ");

int num2 = [Link]();

[Link]("Ingrese la operación (+, -, *, /): ");

char operacion = [Link]().charAt(0);

double resultado = calcular(num1, num2, operacion);

[Link]("Resultado: " + resultado);

public static double calcular(int a, int b, char operador) {

switch (operador) {

case '+':

return a + b;

case '-':
return a - b;

case '*':

return a * b;

case '/':

if (b != 0) {

return (double) a / b;

} else {

[Link]("Error: División por cero.");

return 0;

default:

[Link]("Operación no válida.");

return 0;

30. DADOS 2 NUMEROS ENTEROS, REALIZAR EL ALGORITMO QUE CALCULE EL COCIENTE Y EL RESTO. EL METODO
PARA OBTENER EL COCIENTE Y EL RESTO ES POR RESTAS SUCESIVAS.

import [Link];

public class EJER30 {

public static void main(String[] args) {

Scanner sc = new Scanner([Link]);

[Link]("Ingrese el dividendo (número entero): ");

int dividendo = [Link]();

[Link]("Ingrese el divisor (número entero positivo): ");

int divisor = [Link]();

if (divisor <= 0) {

[Link]("El divisor debe ser mayor que cero.");

} else if (dividendo < 0) {

[Link]("Este algoritmo solo funciona con valores positivos.");

} else {

calcularCocienteYResto(dividendo, divisor);

public static void calcularCocienteYResto(int dividendo, int divisor) {

int cociente = 0;
while (dividendo >= divisor) {

dividendo -= divisor;

cociente++;

[Link]("Cociente: " + cociente);

[Link]("Resto: " + dividendo);

31. ESCRIBA UN PROGRAMA QUE PERMITA AL USUARIO OBTENER LOS VALORES DE LAS FUNCIONES
TRIGONOMÉTRICAS

import [Link];

public class EJER31{

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Calculadora de Funciones Trigonométricas ---");

[Link]("Ingrese el ángulo: ");

double angulo = [Link]();

[Link]("¿El ángulo está en GRADOS o RADIANES? (G/R): ");

String unidad = [Link]().toUpperCase();

double anguloEnRadianes;

if ([Link]("G")) {

anguloEnRadianes = [Link](angulo);

[Link]("Ángulo en grados: " + angulo);

[Link]("Ángulo en radianes: " + [Link]("%.4f", anguloEnRadianes));

} else if ([Link]("R")) {

anguloEnRadianes = angulo;

[Link]("Ángulo en radianes: " + angulo);

[Link]("Ángulo en grados: " + [Link]("%.2f", [Link](anguloEnRadianes)));

} else {

[Link]("Unidad de ángulo inválida. Se asumirán radianes.");

anguloEnRadianes = angulo;

}
[Link]("\n--- Resultados ---");

[Link]("Seno (sin): " + [Link]("%.4f", [Link](anguloEnRadianes)));

[Link]("Coseno (cos): " + [Link]("%.4f", [Link](anguloEnRadianes)));

[Link]("Tangente (tan): " + [Link]("%.4f", [Link](anguloEnRadianes)));

32. GENERAR LAS SECUENCIAS: 1 2 3 4 .............. N, 1 2 3 4 ..... N-1, 1 2 3 ...... N-2, ........., 1

import [Link];

public class EJER32 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("---Generar Secuencias Numéricas Descendentes");

[Link]("Ingrese un número entero positivo (n) para la secuencia inicial: ");

int n = [Link]();

if (n <= 0) {

[Link]("Por favor, ingrese un número entero positivo.");

return;

for (int i = n; i >= 1; i--) {

for (int j = 1; j <= i; j++) {

[Link](j + " ");

[Link]();

}
33. HALLAR NUMEROS AMIGOS EN EL RANGO 1 A N, NUMEROS AMIGOS (2 NUMEROS SON AMIGOS SI LA SUMA
DE SUS DIVISORES DEL PRIMERO ES IGUAL AL SEGUNDO Y VICEVERSA). IMPRIMIR UN MENSAJE EN CADA CASO.

import [Link];

public class EJER33{

public static void main(String[] args) {

Scanner sc = new Scanner([Link]);

[Link]("Ingrese el valor de N: ");

int N = [Link]();

encontrarNumerosAmigos(N);

public static void encontrarNumerosAmigos(int limite) {

for (int i = 1; i <= limite; i++) {

int sumaDiv1 = sumaDivisores(i);

if (sumaDiv1 > i && sumaDiv1 <= limite) {

int sumaDiv2 = sumaDivisores(sumaDiv1);

if (sumaDiv2 == i) {

[Link]("Los números " + i + " y " + sumaDiv1 + " son amigos.");

public static int sumaDivisores(int num) {

int suma = 0;

for (int i = 1; i <= num / 2; i++) {

if (num % i == 0) {

suma += i;

return suma;

}
34. ENCONTRAR CUADRADOS PERFECTOS EN EL RANGO 1 A N.

import [Link];

public class EJER34 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Encontrar Cuadrados Perfectos en un Rango ---");

[Link]("Ingrese el límite superior del rango (n): ");

int n = [Link]();

if (n <= 0) {

[Link]("Por favor, ingrese un número entero positivo.");

[Link]();

return;

[Link]("Cuadrados perfectos en el rango de 1 a " + n + ":");

boolean encontrado = false;

for (int i = 1; i * i <= n; i++) {

[Link](i * i);

encontrado = true;

if (!encontrado) {

[Link]("No se encontraron cuadrados perfectos en el rango especificado.");

35. GENERAR: 121, 12321, 1234321, ...

PARTE 1: GENERACIÓN DE PATRONES NUMÉRICOS

import [Link];
public class EJER35 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Generar Patrones Numéricos (121, 12321, ...) ---");

[Link]("Ingrese el número de filas a generar (ej. 4 para 1234321): ");

int filas = [Link]();

if (filas <= 0) {

[Link]("Ingrese un número positivo de filas.");

[Link]();

return;

for (int i = 1; i <= filas; i++) {

StringBuilder sb = new StringBuilder();

for (int j = 1; j <= i; j++) {

[Link](j);

for (int j = i - 1; j >= 1; j--) {

[Link](j);

[Link]([Link]());

PARTE 2: N PRIMEROS CUBOS USANDO LA PROPIEDAD DE SUMA DE IMPARES

import [Link];

public class EJER35.1 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Calcular N Cubos Usando Suma de Impares ---");

[Link]("Ingrese cuántos cubos desea calcular (n): ");

int n = [Link]();

if (n <= 0) {

[Link]("Ingrese un número entero positivo.");

return;

}
long currentOdd = 1;

for (int i = 1; i <= n; i++) {

long sumOfOdds = 0;

[Link](i + "^3 = ");

for (int j = 0; j < i; j++) {

sumOfOdds += currentOdd;

[Link](currentOdd);

if (j < i - 1) {

[Link](" + ");

currentOdd += 2;

[Link](" = " + sumOfOdds);

36. SEAN LOS DATOS M Y N ENETEROS POSITIVOS. ELABORE UN DIAGRAMA DE FLUJO PARA CALCULAR EL
MAXIMO COMUN DIVISOR Y EL MINIMO COMUN MULTIPLO DE M Y N. EL ALGORITMO DE EUCLIDES ESTABLECE
QUE, SI M>N, MCD(M,N)=MCD(N,M MOD N).

import [Link];

public class EJER36 {

public static void main(String[] args) {

Scanner sc = new Scanner([Link]);

// Entrada de datos

[Link]("Ingrese el valor de M (entero positivo): ");

int M = [Link]();

[Link]("Ingrese el valor de N (entero positivo): ");

int N = [Link]();

if (M <= 0 || N <= 0) {

[Link]("Ambos números deben ser enteros positivos.");

} else {

int mcd = calcularMCD(M, N);

int mcm = calcularMCM(M, N, mcd);

[Link]("Máximo Común Divisor (MCD): " + mcd);

[Link]("Mínimo Común Múltiplo (MCM): " + mcm);


}

public static int calcularMCD(int a, int b) {

while (b != 0) {

int resto = a % b;

a = b;

b = resto;

return a;

public static int calcularMCM(int a, int b, int mcd) {

return (a * b) / mcd;

37. LEER UN VALOR NUMERICO Y CONVERTIRLO A UN NUMERO ROMANO (1-9999).

import [Link];

public class EJER37 {

public static void main(String[] args) {

Scanner sc = new Scanner([Link]);

[Link]("Ingrese un número entre 1 y 9999: ");

int numero = [Link]();

if (numero < 1 || numero > 9999) {

[Link]("El número debe estar entre 1 y 9999.");

} else {

String romano = convertirARomano(numero);

[Link]("Número romano: " + romano);

public static String convertirARomano(int numero) {

String[] unidades = {

"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"

};

String[] decenas = {

"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"

};
String[] centenas = {

"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"

};

String[] miles = {

"", "M", "MM", "MMM", "MMMM", "MMMMM", "MMMMMM", "MMMMMMM", "MMMMMMMM",


"MMMMMMMMM"

};

int u = numero % 10;

int d = (numero / 10) % 10;

int c = (numero / 100) % 10;

int m = (numero / 1000) % 10;

return miles[m] + centenas[c] + decenas[d] + unidades[u];

38. LEER UN NÚMERO ENTERO POSITIVO Y ORDENE SUS DÍGITOS DEL MENOR AL MAYOR, EL RESULTADO ES OTRO
NÚMERO ENTERO.

import [Link];

import [Link];

public class EJER38{

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("--- Ordenar Dígitos de un Número ---");

[Link]("Ingrese un número entero positivo: ");

int numero = [Link]();

if (numero < 0) {

[Link]("Por favor, ingrese un número entero positivo.");

[Link]();

return;

if (numero == 0) {

[Link]("El número con sus dígitos ordenados es: 0");

[Link]();

return;
}

String numeroStr = [Link](numero);

char[] digitos = [Link]();

[Link](digitos);

StringBuilder numeroOrdenadoStr = new StringBuilder();

for (char digitoChar : digitos) {

[Link](digitoChar);

long nuevoNumero = [Link]([Link]());

[Link]("El número " + numero + " con sus dígitos ordenados es: " + nuevoNumero);

39. LEA UN VECTOR DESORDENADO A, COMPUESTO DE N NUMEROS ENETEROS E IMPRIMASE ESTE VECTOR EN LA
MISMA SECUENCIA, PERO IGNORANDO LOS VALORES DUPLICADOS QUE SE ENCUENTREN EN EL. TAMBIEN SE
NECESITA SABER EL NUMERO DE ELEMENTOS QUE PERMANECEN (M).

import [Link];

public class EJER39 {

public static void main(String[] args) {

Scanner sc = new Scanner([Link]);

[Link]("Ingrese la cantidad de elementos del vector: ");

int n = [Link]();

int[] A = new int[n];

leerVector(A, sc);

int[] M = eliminarDuplicados(A);

imprimirVectorSinDuplicados(M);

public static void leerVector(int[] vector, Scanner sc) {

[Link]("Ingrese los elementos del vector:");

for (int i = 0; i < [Link]; i++) {

[Link]("A[" + i + "] = ");

vector[i] = [Link]();

public static int[] eliminarDuplicados(int[] original) {

int[] temp = new int[[Link]];


int count = 0;

for (int i = 0; i < [Link]; i++) {

if (!existeEnArreglo(temp, count, original[i])) {

temp[count] = original[i];

count++;

int[] resultado = new int[count];

for (int i = 0; i < count; i++) {

resultado[i] = temp[i];

return resultado;

public static boolean existeEnArreglo(int[] arreglo, int longitud, int valor) {

for (int i = 0; i < longitud; i++) {

if (arreglo[i] == valor) {

return true;

return false;

public static void imprimirVectorSinDuplicados(int[] vector) {

[Link]("Vector sin duplicados: ");

for (int val : vector) {

[Link](val + " ");

[Link]("\nCantidad de elementos sin duplicados: " + [Link]);

MODULAR

40. CALCULAR EL VALOR DE S PARA N TERMINOS: S=nx + (n-1)x^2 + (n-2)x^4 + (n-3)x^7 +….

import [Link];

public class EJERMOD40{

public static double calcularS(int n, double x) {


double S = 0.0;

double potenciaX = 1.0;

for (int i = 0; i < n; i++) {

S += (n - i) * potenciaX;

potenciaX *= x;

return S;

public static void main(String[] args) {

int n = 4;

double x = 2.0;

double resultado = calcularS(n, x);

[Link]("El valor de S para n=" + n + " y x=" + x + " es: " + resultado);

41. CALCULAR EL VALOR DE S PARA N TERMINOS: S=X^0/2! + X^1/3! + X^1/5! +X^2/7! +X^3/11! +X^5/13! +….

import [Link];

public class EJERMOD41{

public static double calcularS(int n, double x) {

double s = 0;

for (int i = 0; i < n; i++) {

int numeradorExponente;

int denominadorFactorial;

if (i == 0) {

numeradorExponente = 0;

denominadorFactorial = 2;

} else if (i == 1) {

numeradorExponente = 1;

denominadorFactorial = 3;

} else if (i == 2) {

numeradorExponente = 1;

denominadorFactorial = 5;

} else if (i == 3) {

numeradorExponente = 2;

denominadorFactorial = 7;
} else if (i == 4) {

numeradorExponente = 3;

denominadorFactorial = 11;

} else if (i == 5) {

numeradorExponente = 5;

denominadorFactorial = 13;

} else {

numeradorExponente = i + (i - 1);

denominadorFactorial = (i + (i - 1)) + 2;

double potenciaX = potencia(x, numeradorExponente);

double term = potenciaX / factorial(denominadorFactorial);

s += term;

return s;

public static double potencia(double base, int exponente) {

double resultado = 1;

for (int i = 0; i < exponente; i++) {

resultado *= base;

return resultado;

public static long factorial(int n) {

long fact = 1;

for (int i = 2; i <= n; i++) {

fact *= i;

return fact;

public static void main(String[] args) {

Scanner sc = new Scanner([Link]);

[Link]("Ingrese el número de términos (n): ");

int n = [Link]();

[Link]("Ingrese el valor de x: ");

double x = [Link]();

double resultado = calcularS(n, x);

[Link]("El valor de S para " + n + " términos es: " + resultado);

}
42. CALCULAR EL VALOR DE S PARA N TERMINOS: (X+1)!/X^N + (X+2)!/X^N-1 + (X+3)!/X^XN-2 +…..

import [Link];

public class EJERMOD42{

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("Ingrese el valor de n (número de términos): ");

int n = [Link]();

[Link]("Ingrese el valor de x: ");

double x = [Link]();

double suma = 0;

for (int i = 1; i <= n; i++) {

double numerador = factorial(x + i);

double denominador = potencia(x, n - (i - 1));

suma += numerador / denominador;

[Link]("El valor de S para " + n + " términos es: " + suma);

public static double potencia(double base, int exponente) {

double resultado = 1;

for (int i = 0; i < exponente; i++) {

resultado *= base;

return resultado;

public static double factorial(double n) {

if (n == 0) {

return 1;

} else {

double resultado = 1;

for (int i = 1; i <= (int) n; i++) {

resultado *= i;

return resultado;

}
}

43. CALCULAR EL VALOR DE S PARA N TERMINOS: S=X^0/2! + X^1/3! + X^1/5! +X^2/7! +X^3/11! +X^5/13! +…

import [Link];

public class EJERMOD43{

public static double calcularS(int n, double x) {

double s = 0;

for (int i = 0; i < n; i++) {

int numeradorExponente;

int denominadorFactorial;

if (i == 0) {

numeradorExponente = 0;

denominadorFactorial = 2;

} else if (i == 1) {

numeradorExponente = 1;

denominadorFactorial = 3;

} else if (i == 2) {

numeradorExponente = 1;

denominadorFactorial = 5;

} else if (i == 3) {

numeradorExponente = 2;

denominadorFactorial = 7;

} else if (i == 4) {

numeradorExponente = 3;

denominadorFactorial = 11;

} else if (i == 5) {

numeradorExponente = 5;

denominadorFactorial = 13;

} else {

numeradorExponente = i + (i - 1);

denominadorFactorial = (i + (i - 1)) + 2;

double potenciaX = potencia(x, numeradorExponente);

double term = potenciaX / factorial(denominadorFactorial);

s += term;

return s;

}
public static double potencia(double base, int exponente) {

double resultado = 1;

for (int i = 0; i < exponente; i++) {

resultado *= base;

return resultado;

public static long factorial(int n) {

long fact = 1;

for (int i = 2; i <= n; i++) {

fact *= i;

return fact;

public static void main(String[] args) {

Scanner sc = new Scanner([Link]);

[Link]("Ingrese el número de términos (n): ");

int n = [Link]();

[Link]("Ingrese el valor de x: ");

double x = [Link]();

double resultado = calcularS(n, x);

[Link]("El valor de S para " + n + " términos es: " + resultado);

ESTATICAS “VECTORES”

44. DADOS 2 VECTORES A Y B ORDENADOS ASCENDENTEMENTE LLEVAR TODOS SUS ELEMENTOS A UN NUEVO
VECTOR C QUE TAMBIEN DEBERA SER ORDENADO ASCENDENTEMENTE.

import [Link];

public class EJERVEC44 {

public static void main(String[] args) {

Scanner sc = new Scanner([Link]);

[Link]("Ingrese el tamaño del vector A: ");

int nA = [Link]();

int[] A = new int[nA];

[Link]("Ingrese los elementos del vector A:");


for (int i = 0; i < nA; i++) {

A[i] = [Link]();

[Link]("Ingrese el tamaño del vector B: ");

int nB = [Link]();

int[] B = new int[nB];

[Link]("Ingrese los elementos del vector B:");

for (int i = 0; i < nB; i++) {

B[i] = [Link]();

int[] C = new int[nA + nB];

int i = 0, j = 0, k = 0;

while (i < nA && j < nB) {

if (A[i] < B[j]) {

C[k] = A[i];

i++;

} else {

C[k] = B[j];

j++;

k++;

while (i < nA) {

C[k] = A[i];

i++;

k++;

while (j < nB) {

C[k] = B[j];

j++;

k++;

[Link]("Vector C:");

for (int elemento : C) {

[Link](elemento + " ");

}
45. DADO UN VECTOR A DE N ELEMENTOS HACER ROTAR HACIA LA DERECHA EN K ELEMENTOS.

import [Link];

public class EJERVEC45{

public static void main(String[] args) {

Scanner sc = new Scanner([Link]);

[Link]("Ingrese el tamaño del vector A: ");

int n = [Link]();

int[] A = new int[n];

[Link]("Ingrese los elementos del vector A:");

for (int i = 0; i < n; i++) {

A[i] = [Link]();

[Link]("Ingrese el número de posiciones a rotar hacia la derecha: ");

int k = [Link]();

k = k % n;

int[] temp = new int[k];

for (int i = 0; i < k; i++) {

temp[i] = A[n - k + i];

for (int i = n - k - 1; i >= 0; i--) {

A[i + k] = A[i];

for (int i = 0; i < k; i++) {

A[i] = temp[i];

[Link]("Vector A rotado:");

for (int elemento : A) {

[Link](elemento + " ");

}
46. REALIZAR EL PRODUCTO DE 2 VECTORES CONSIDERANDO QUE SON DE DISTINTA LONGITUD.

import [Link];

public class EJERVEC46 {

public static void main(String[] args) {

Scanner sc = new Scanner([Link]);

[Link]("Ingrese la longitud del vector 1: ");

int n1 = [Link]();

[Link]("Ingrese la longitud del vector 2: ");

int n2 = [Link]();

int[] vector1 = new int[n1];

int[] vector2 = new int[n2];

[Link]("Ingrese los elementos del vector 1:");

for (int i = 0; i < n1; i++) {

[Link]("Elemento " + (i + 1) + ": ");

vector1[i] = [Link]();

[Link]("Ingrese los elementos del vector 2:");

for (int i = 0; i < n2; i++) {

[Link]("Elemento " + (i + 1) + ": ");

vector2[i] = [Link]();

int longitud;

if (n1 < n2) {

longitud = n1;

} else {

longitud = n2;

int[] resultado = new int[longitud];

for (int i = 0; i < longitud; i++) {

resultado[i] = vector1[i] * vector2[i];

[Link]("Vector resultante: ");

for (int i = 0; i < [Link]; i++) {

[Link](resultado[i] + " ");


}

47. GENERAR LOS PRIMEROS N NUMEROS PRIMOS Y ALMACENARLOS EN UN VECTOR P.

import [Link];

public class EJERVEC47 {

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("Ingrese el número de primos a generar: ");

int N = [Link]();

int[] primos = generarPrimos(N);

[Link]("P = ");

for (int i = 0; i < [Link]; i++) {

[Link](primos[i] + " ");

[Link]();

for (int i = 0; i < [Link]; i++) {

[Link](i + " ");

public static int[] generarPrimos(int n) {

int[] primos = new int[n];

int contadorPrimos = 0;

int numero = 2; // Comenzamos con el primer número primo

while (contadorPrimos < n) {

if (esPrimo(numero)) {

primos[contadorPrimos] = numero;

contadorPrimos++;

numero++;

}
return primos;

public static boolean esPrimo(int numero) {

if (numero <= 1) {

return false;

for (int i = 2; i * i <= numero; i++) {

if (numero % i == 0) {

return false;

return true;

ESTATICAS “MATRICES”

[Link] UNA MATRIZ A DEL ORDEN MxN Y UN NUMERO K. MULTIPLICAR TODOS LOS ELEMENTOS DE LA MATRIZ
POR EL NUMERO K. MOSTRAR LA MATRIZ RESULTANTE.

import [Link];

public class EJERMAT48{

public static void multiplicarPorK(int[][] matriz, int K) {

int M = [Link];

int N = matriz[0].length;

for (int i = 0; i < M; i++) {

for (int j = 0; j < N; j++) {

matriz[i][j] *= K;

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("Ingrese el número de filas (M): ");

int M = [Link]();

[Link]("Ingrese el número de columnas (N): ");

int N = [Link]();
int[][] matriz = new int[M][N];

for (int i = 0; i < M; i++) {

for (int j = 0; j < N; j++) {

[Link]("Ingrese el elemento A[%d][%d]: ", i, j);

matriz[i][j] = [Link]();

[Link]("Ingrese el valor de K: ");

int K = [Link]();

multiplicarPorK(matriz, K);

[Link]("Matriz resultante:");

for (int i = 0; i < M; i++) {

for (int j = 0; j < N; j++) {

[Link](matriz[i][j] + " ");

[Link]();

49. LEER UNA MATRIZ C DE ORDEN P (MATRIZ CUADRADA). MOSTRAR LOS ELEMENTOS DE LA DIAGONAL
PRINCIPAL ,SECUNDARIA,DE LA MATRIZ TRIANGULAR SUPERIOS Y DE LA MATRIZ TRIANGILAR INFERIOR.

import [Link];

public class EJERMAT49{

public static void main(String[] args) {

Scanner scanner = new Scanner([Link]);

[Link]("Ingrese el orden de la matriz (P): ");

int P = [Link]();

int[][] matriz = new int[P][P];


// Leer la matriz

[Link]("Ingrese los elementos de la matriz:");

for (int i = 0; i < P; i++) {

for (int j = 0; j < P; j++) {

matriz[i][j] = [Link]();

mostrarDiagonalPrincipal(matriz);

mostrarDiagonalSecundaria(matriz);

mostrarMatrizTriangularSuperior(matriz);

mostrarMatrizTriangularInferior(matriz);

public static void mostrarDiagonalPrincipal(int[][] matriz) {

[Link]("Diagonal principal: ");

for (int i = 0; i < [Link]; i++) {

[Link](matriz[i][i] + " ");

[Link]();

public static void mostrarDiagonalSecundaria(int[][] matriz) {

[Link]("Diagonal secundaria: ");

int P = [Link];

for (int i = 0; i < P; i++) {

[Link](matriz[i][P - 1 - i] + " ");

[Link]();

public static void mostrarMatrizTriangularSuperior(int[][] matriz) {

[Link]("Matriz triangular superior:");

for (int i = 0; i < [Link]; i++) {

for (int j = 0; j < [Link]; j++) {

if (j >= i) {

[Link](matriz[i][j] + " ");

} else {

[Link]("0 ");

[Link]();

}
}

public static void mostrarMatrizTriangularInferior(int[][] matriz) {

[Link]("Matriz triangular inferior:");

for (int i = 0; i < [Link]; i++) {

for (int j = 0; j < [Link]; j++) {

if (j <= i) {

[Link](matriz[i][j] + " ");

} else {

[Link]("0 ");

[Link]();

50. GENERAR LA SIGUIENTE MATRIZ DE ORDEN NxM (SOLO PARA VALORES IMPARES DE N Y MAYORES QUE 3.

import [Link];

public class EJERMAT50 {

public static void main(String[] args) {

int N = 5; // Cambia este valor por cualquier número impar mayor que 3

if (N > 3 && N % 2 != 0) {

int[][] matriz = generarMatriz(N);

imprimirMatriz(matriz);

} else {

[Link]("N debe ser un número impar mayor que 3.");

public static int[][] generarMatriz(int N) {

int[][] matriz = new int[N][N];


for (int i = 0; i < N; i++) {

for (int j = 0; j < N; j++) {

if (i == j) {

matriz[i][j] = 4; // Diagonal principal

} else if (i + j == N - 1) {

matriz[i][j] = 4; // Diagonal secundaria

} else {

matriz[i][j] = 1; // Resto de la matriz

return matriz;

public static void imprimirMatriz(int[][] matriz) {

for (int[] fila : matriz) {

for (int valor : fila) {

[Link](valor + " ");

[Link]();

51. GENERAR LA SIGUIENTE MATRIZ DE ORDEN NxN (SOLO PARA VALORES IMPARES DE N Y MAYORES QUE 3).

import [Link];

public class EJERMAT51{

public static void main(String[] args) {

int N = 5;

int[][] matriz = new int[N][N];

llenarMatriz(matriz, N);

imprimirMatriz(matriz);

}
public static void llenarMatriz(int[][] matriz, int N) {

int num = 1;

int capa = 0;

while (num <= N * N) {

for (int i = capa; i < N - capa; i++) {

matriz[capa][i] = num++;

for (int i = capa + 1; i < N - capa; i++) {

matriz[i][N - capa - 1] = num++;

for (int i = N - capa - 1; i >= capa; i--) {

matriz[N - capa - 1][i] = num++;

for (int i = N - capa - 2; i > capa; i--) {

matriz[i][capa] = num++;

capa++;

public static void imprimirMatriz(int[][] matriz) {

for (int[] fila : matriz) {

for (int valor : fila) {

[Link](valor + "\t");

[Link]();

52. GENERAR LA SIGUIENTE MATRIZ DE ORDEN NxN (SOLO PARA VALORES IMPARES DE N Y MAYORES QUE 3).

import [Link];

public class EJERMAT52 {

public static void main(String[] args) {

int[][] matriz = llenarZigZag(5, 5);

imprimirMatriz(matriz);
}

public static int[][] llenarZigZag(int filas, int columnas) {

int[][] matriz = new int[filas][columnas];

int numero = 1;

for (int i = 0; i < filas; i++) {

if (i % 2 == 0) {

for (int j = 0; j < columnas; j++) {

matriz[i][j] = numero++;

} else {

for (int j = columnas - 1; j >= 0; j--) {

matriz[i][j] = numero++;

return matriz;

public static void imprimirMatriz(int[][] matriz) {

for (int[] fila : matriz) {

for (int num : fila) {

[Link]("%3d ", num);

[Link]();

53. GENERAR LA SIGUIENTE MATRIZ DE ORDEN NxN (SOLO PARA VALORES IMPARES DE N Y MAYORES QUE 3).

import [Link];

public class EJERMAT53{

public static void main(String[] args) {

int[][] matriz = new int[5][5];

int contador = 1;

for (int i = 0; i < 5; i++) {

matriz[i][i] = contador++;

for (int i = 0; i < 5; i++) {


for (int j = 0; j < 5; j++) {

if (i < j) {

matriz[i][j] = contador++;

} else if (i > j) {

matriz[i][j] = 0;

for (int i = 0; i < 5; i++) {

for (int j = 0; j < 5; j++) {

[Link](matriz[i][j] + "\t");

[Link]();

También podría gustarte