Está en la página 1de 6

package com.mycompany.

numeromalvado;
import java.lang.Math;

/**
*
* @author maiko
*/
import java.util.Scanner;

//perdon profe me tube que ayudar con varias herrmientas porque empeze el examen muy tarde, lo
lamento
public class NumeroMalvado {

public static void main(String[] args) {


// Leer el número desde la entrada estándar
Scanner scanner = new Scanner(System.in);
System.out.print("Ingrese un numero de 4 dijitos: ");
int numero = scanner.nextInt();

// Convertir el número a cadena para facilitar su manipulación


String numeroStr = String.valueOf(numero);

// Verificar si el número tiene cuatro dígitos


if (numeroStr.length() != 4) {
System.out.println("Numero Malvado: false");
return;
}

// Verificar si todos los dígitos son diferentes


if (esIgual(numeroStr, 0, 1) || esIgual(numeroStr, 0, 2) ||
esIgual(numeroStr, 0, 3) || esIgual(numeroStr, 1, 2) ||
esIgual(numeroStr, 1, 3) || esIgual(numeroStr, 2, 3)) {
System.out.println("Numero Malvado: false");
return;
}

// Verificar si el tercer dígito es cero


if (numeroStr.indexOf('0') != 2) {
System.out.println("Numero Malvado: false");
return;
}

// Calcular el cuarto dígito


int primerDigito = Character.digit(numeroStr.charAt(0), 10);
int segundoDigito = Character.digit(numeroStr.charAt(1), 10);
int cuartoDigito = Math.abs(primerDigito - segundoDigito);

// Formar el número malvado propuesto


int numeroMalvadoPropuesto = Integer.parseInt(numeroStr.substring(0, 2) + cuartoDigito);

// Verificar si el número propuesto también es malvado


if (esNumeroMalvado(numeroMalvadoPropuesto)) {
System.out.println("Número Malvado: true");
} else {
System.out.println("Número Malvado: false");
}
}

public static boolean esNumeroMalvado(int numero) {


// Convertir el número a cadena para facilitar su manipulación
String numeroStr = String.valueOf(numero);

// Verificar si el número tiene cuatro dígitos


if (numeroStr.length() != 4) {
return false;
}

// Verificar si todos los dígitos son diferentes


if (esIgual(numeroStr, 0, 1) || esIgual(numeroStr, 0, 2) ||
esIgual(numeroStr, 0, 3) || esIgual(numeroStr, 1, 2) ||
esIgual(numeroStr, 1, 3) || esIgual(numeroStr, 2, 3)) {
return false;
}

// Verificar si el tercer dígito es cero


if (numeroStr.indexOf('0') != 2) {
return false;
}

// Calcular el cuarto dígito


int primerDigito = Character.digit(numeroStr.charAt(0), 10);
int segundoDigito = Character.digit(numeroStr.charAt(1), 10);
int cuartoDigito = Math.abs(primerDigito - segundoDigito);

// Formar el número malvado propuesto


int numeroMalvadoPropuesto = Integer.parseInt(numeroStr.substring(0, 2) + cuartoDigito);

// Verificar si el número propuesto también es malvado


return esNumeroMalvado(numeroMalvadoPropuesto);
}
public static boolean esIgual(String str, int indice1, int indice2) {
return str.substring(indice1, indice1 + 1).equals(str.substring(indice2, indice2 + 1));

También podría gustarte