Buscar este blog

Translate

Mostrando entradas con la etiqueta ejercicio java. Mostrar todas las entradas
thumbnail

Reto Comprobar Si Es Numero Es Primo Java


Лого жава.png

Hola querido lector, hoy les traigo un código hecho en Java, y va sobre un programa que se encarga de comprobar si un número es primo o no. Para el que no lo sepa un número es primo si es un número entero (no-decimal), y que sólo es divisible por él mismo y por uno.

Para hacer esto, he creado un bucle for que se encarga de recorrer hasta ese número y va haciendo el módulo, (comprobar que el resto sea igual a cero), la verdad el programa lo he hecho con muchos detalles teniendo en cuenta las excepciones.


        int numero = 15;
        String str = "SI es primo";
        System.out.println("Escriba un número mayor a 1");
        Scanner sca = new Scanner(System.in);
        try {
            numero = sca.nextInt();
            if (numero < 2) {
                str = "Debes poner un numero positivo mayor a 1";
            }
            for (int i = 2; i < numero; i++) {
                if (numero % i == 0 && numero != 2) {
                    str = "NO es primo";
                    throw new Exception("");
                }
            }
        } catch (Exception ex) {
                str="No es  un número válido";
        }
        System.out.println(str);

Espero que os haya entretenido, que hayáis aprendido algo, y que os haya sido útil este código. Si es así podéis compartir el enlace, en vuestras redes sociales, instituto o a alguien que le pueda servir. Un saludo y hasta la próxima.


thumbnail

Aprende Programación En Java Desde Chrome


Código, Codificación, Programación, As1, Macbook

Hola querido lector, hoy estoy aquí para comentar una tecnología que a mí me ha parecido curiosa en el tema de las tecnologías 3.0 , y es el poder empezar a programar, desde tu navegador web, sin instalar software extra.

La aplicación web de la que comento es jdoodle, es una aplicación disponible online, a través de ella podéis empezar a programar sin tener contraseñas administrador o teniendo control parental en nuestro ordenador, esta herrmienta sirve para aprender las bases de la programación en Java, aunque si queremos aprender de forma más profunda es recomendable tener instalado JDK y Netbeans en tu equipo.

Y es que la web 3.0 no para de impresionarme, aún en su 3ra versión, la 4.0 será cuando la inteligencia artificial, tenga un componente activo y principal. Recuerdo aún cuando allá por el 2012 estuve probando un sistema operativo , en el navegador web.

Este compilador en la nube o cloud, es bastante cómodo de usar, funciona prácticamente en todos los sistemas operativos, y no necesitas permisos de administrador. Aparte de estos compiladores, la web nos trae websites que podemos aprender a programar, a través de juegos, puzzles, entre otras cosas bastante entretenidas.

Pues nada hasta aquí mi artículo de hoy, si os ha gustado podéis compartir el enlace en Facebook o dejarme tu comentario más abajo, un saludo y hasta la próxima.

FUENTE:
thumbnail

Reto Poner Mayuscula Primera Vocal de Palabra de Frase


Resultado de imagen de netbeans


Hola  querido lector, hoy tengo un nuevo reto, esta vez no me lo he sacado de acepta el reto, ni de ninguna página similar, me gusta hacer ese tipo de retos, pero ya sabéis que muchas veces no dispongo del tiempo suficiente para hacerlos. Debo confesar que he empleado en mi código, otros códigos que se pueden ver en otros artículos de mi blog.

Pues nada, el reto consiste en darme una frase, la primera puede ser o no mayúscula y el resto debe de ser minúscula, y el programa va a encargarse de la transformación, de la primera letra de la frase en mayúscula. Me ha gustado hacer este reto, la verdad, aquí os dejo mi código.



        try {
            String palabra;
            Scanner sca = new Scanner(System.in);
            System.out.println("Di una frase:");
            palabra = sca.nextLine();
            String intermedio = "";
            String palabraFinal = "";
            Pattern patVoc = Pattern.compile("[A-Z]?[a-z ]+");// Creo el patrón
            Matcher matVoc;
            int num = 0;
            matVoc = patVoc.matcher(palabra);
            if (!matVoc.matches()) {
                throw new Exception("Debes de poner una frase válida");
            }

            for (int i = 0; i < palabra.length(); i++) {
                intermedio = palabra.charAt(i) + "";

                if (intermedio.equals(" ")) {
                    intermedio = palabra.charAt(i + 1) + "";
                    palabraFinal = palabraFinal + " " + intermedio.toUpperCase();
                    i = i + 1;
                } else {
                    if (i == 0) {
                        intermedio = intermedio.toUpperCase();
                    }
                    palabraFinal = palabraFinal + intermedio;
                }
            }
            System.out.println(palabraFinal);
        } catch (Exception ex) {
            System.out.println("Error cod. " + ex.getMessage());
        }


Bueno esto ha sido toto por el artículo de hoy, espero que os haya gustado, si os habéis entretenido podéis suscribiros a mi página de Facebook o Twitter para recibir contenido similar, sin más me despido, hasta la próxima.
thumbnail

Reto Traductor Idioma "A"


Código, Html, Java Script, Internet, Equipo, Web


Hola querido lector, hoy quería hacer un reto basándome en un código, que es el mismo que hice ayer, y la verdad me ha traído recuerdos haciéndolo ya que el idioma "A", fue creado por la frikipedia, un portal dedicado a "noticias chorras", en el cual se inventaban los personajes públicos con datos falsos y haciendo sátira sobre diferentes asociaciones como la SGAE.

El idioma A consistía en convertir todos los carácteres en A, respetando los espacios y el punto final de la frase y/o párrafo, la verdad, sería interesante crear esta aplicación en swing con Java, y es posible que en un futuro lo haga, mientras tando dejo "la base" de hacerlo con una frase.

Pues aquí os dejo el código:

        String palabra;
        Scanner sca = new Scanner(System.in);
        System.out.println("Di una frase:");
        palabra = sca.nextLine();
        String intermedio = "";
        Pattern patVoc = Pattern.compile("[ ]");// Creo el patrón
        Matcher matVoc;
       
        for (int i = 0; i < palabra.length(); i++) {
            matVoc = patVoc.matcher(palabra.charAt(i) + "");//Paso la variable, en este caso correo
            if (matVoc.matches()) {
                intermedio=intermedio+" ";
            }else{
                intermedio=intermedio+"A";
            }
        }
        System.out.println(intermedio);


Pues nada esto ha sido todo por el tutorial de hoy, espero que hayáis aprendido algo, si queréis más contenido similar puedes seguirme en Facebook y twitter, un saludo y hasta la próxima.
thumbnail

Reto Contar Vocales De Una Frase en Java

Café, Frijoles, Grano De Café, Beber, Bebidas, Brown


Hola querido lector, hoy voy a hacer un reto, que consiste en contar todas las vocales de una frase, que nosotros vamos a escribir, para ello voy a usar los patrones en Java, más abajo voy a poner la página web en "FUENTES" de donde saqué el reto, para ahorrarme el aviso por copyright :) t.

Aqui les dejo el código:

        String palabra;
        Scanner sca = new Scanner(System.in);
        System.out.println("Di una frase:");
        palabra = sca.nextLine();
        String intermedio = "";
        Pattern patVoc = Pattern.compile("[aeiou]");// Creo el patrón
        Matcher matVoc;
        int num = 0;
        for (int i = 0; i < palabra.length(); i++) {
            matVoc = patVoc.matcher(palabra.charAt(i) + "");//Paso la variable, en este caso correo
            if (matVoc.matches()) {
                num = num + 1;
            }
        }
        System.out.println(num);

Y nada esto ha sido todo por este tutorial, creedme que cuesta hacer un pequeño hueco en el día para escribir, en fin espero que hayáis aprendido algo, nos vemos, hasta la próxima!

FUENTE:

https://javaparajavatos.wordpress.com/2016/04/08/reto-de-contar-vocales/

thumbnail

Reto Frases Palíndromas en Java




Hola querido lector, hoy quiero hacer un reto que he visto en acepta el reto, la verdad bastante entretenido, y en el cual me he entretenido a la hora de hacerlo, la mayor parte del código está basado en otros proyectos que he trabajado aquí en mi blog, que son el de los patrones (pattern) y el de invertir una palabra.

Y es que en el mundo de la programación si puedes evitar reinventar la rueda, evítalo, muchas veces es mejor usar una librería o framework que haga lo mismo que haces tu, pero más eficiente y mucho más probado.

Debo de decir que he recibido alguna queja por copyright por parte de Facebook, con respecto a estos tutoriales, así que abajo dejo el enlace al ejercicio completo, espero que no moleste, pero es la única forma de publicar este tutorial.

En cuanto a la codificación UTF-8 he tenido problemas en cuanto a mi portátil, más abajo les dejo la opción de NetBeans que yo he usado para que funcione con ISO-8859-1 , sin más les dejo el enunciado de acepta el reto:




Por aquí dejo mi código:


        try {


            String frase = "";
            String fraseInvertida = "";
            Scanner sca = new Scanner(System.in);
            System.out.println("Pongame una frase\n");
            frase = sca.nextLine().toString();//Ponemos nuestra variable
            frase = frase.toLowerCase();
            frase = frase.replaceAll("[ ]", "");
            frase = frase.replaceAll("á", "a");
            frase = frase.replaceAll("é", "e");
            frase = frase.replaceAll("í", "i");
            frase = frase.replaceAll("ó", "o");
            frase = frase.replaceAll("ú", "u");
            frase = frase.replaceAll("à", "a");
            frase = frase.replaceAll("è", "e");
            frase = frase.replaceAll("ì", "i");
            frase = frase.replaceAll("ò", "o");
            frase = frase.replaceAll("ù", "u");

            Pattern patNac = Pattern.compile("[a-zA-Z0-9]+");// Creo el patrón
            Matcher matNac = patNac.matcher(frase);//
            if (!matNac.matches()) {
                throw new Exception("Error, debes de poner una frase válida");
            }

            int longitud = (int) frase.length() - 1;

            do {
                fraseInvertida = fraseInvertida + frase.charAt(longitud);//nos devuele el carácter en la posición
                longitud = longitud - 1;//vamos restando posiciones
            } while (longitud >= 0);

            if (frase.equals(fraseInvertida)) {
                System.out.println("SI");
            } else {
                System.out.println("NO");
            }
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }



Eso es todo, espero que hayan aprendido algo, si te gustó mi artículo puedes dejar un comentario en blogger o escribirme a mi página en Facebook llamado Tomhard Computer, muchas gracias por leerme y hasta la próxima

FUENTE:


thumbnail

Reto Fin de Mes en Java

Bebidas, Blog, Blogger, Descanso, Negocio, Café, Equipo
Hola querido lector, otra vez estoy aquí con un nuevo reto de #aceptaelreto de aceptaelreto.com, en este caso, voy a hacer el reto de poner mi cuenta corriente y mis ingresos o pérdidas que tengo este mes, si no tengo superávit va escribir "SI", en la pantalla, y si tengo pérdidas pone "NO" en la pantalla.

Me ha parecido un reto, bastante básico, pero que se puede aprender mucho con él, he usado control de excepciones, escaner de tipo String, y he cuidado bastante los detalles así como el nombre de las diferentes variables que he usado. Aquí les dejo el enunciado:

Fin de mes


Pila de monedas
A mí no me asusta el fin del mundo; me asusta el fin de mes, porque no siempre consigo que mis ingresos lleguen conmigo. Los gastos se acumulan, y no sé qué más hacer para estirar mi triste sueldo.
Creo que el primer paso para mejorar mi situación es hacer una estimación de lo bien o lo mal que me va a ir un mes, en función de los ingresos y los gastos previstos. Sé cuánto dinero tengo en el banco al principio, y sé cuánto va a variar. ¿Me ayudas a saber si llegaré a fin de mes con dinero en el banco?

Entrada

La entrada comienza con un número que indica cuántos casos de prueba vendrán a continuación. Cada caso contiene dos números, −10.000 ≤ s,c ≤ 10.000 indicando, respectivamente, el saldo en mi cuenta bancaria el primer día del mes, y el cambio estimado (ingresos menos gastos) durante el mes.

Salida

Para cada caso de prueba, se escribirá "SI" si llego a fin de mes con saldo mayor o igual que cero, y "NO" en otro caso.

A aquí les dejo mi código:

  try {
            String str;
            String[] strArr;
            Scanner sca = new Scanner(System.in);
            float banco, cashFlow, resultado;
            System.out.println("Debes de poner una cantidad (CUENTA_BANCARIA -GASTOS/INGRESOS):");
            str = sca.nextLine();
            strArr = str.split(" ");
            if (strArr.length > 2) {
                throw new Exception("");
            }
            banco = Float.parseFloat(strArr[0]);
            cashFlow = Float.parseFloat(strArr[1]);
            resultado = banco + cashFlow;
            if (resultado >= 0) {
                System.out.println("SI");
            } else {
                System.out.println("NO");
            }
        } catch (Exception ex) {
            System.out.println("Debes de poner los datos correctos, usando para decimales punto (.)");
        }

Si queréis recibir más contenido similar, podéis suscribiros a mi página en Facebook o seguirme en twitter, esto ha sido todo muchas gracias, y hasta la próxima.

FUENTE:

https://www.aceptaelreto.com/problem/statement.php?id=313
thumbnail

Reto Números HyperPares en Java

Ordenador, Código Informático, Programación, Enlaces


Hola querido lector, hoy me propongo hacer un reto, de #aceptaelreto y de su página web, aceptaelreto.com, y es comprobar que todos los números que componen una determinada cifra, (que nosotros vamos a pedir al usuario), son pares, para ello debo de decir que el módulo o resto de esta cifra entre 2 debe ser 0, y   toda cantidad diferente no es par.

Aquí os dejo el enunciado:

Número hyperpar


Se dice que un número es hyperpar cuando todos sus dígitos son pares. ¿Sabes identificarlos?

Entrada

La entrada consta de una serie de casos de prueba. Cada uno está compuesto de una única línea con un número no negativo ni mayor que 109.
Los casos de prueba terminan con un número negativo que no habrá que procesar.

Salida

Para cada caso de prueba se escribirá, en una línea independiente, SI si el número es hyperpar y NO si no lo es.

Aquí os dejo el código:

  try {
            String str ;
            Scanner sca = new Scanner(System.in);
            System.out.println("Escríbame un número:");
            str = sca.nextLine();
            int intermedio;
            int comprobacion=Integer.parseInt(str);
            if (comprobacion <=0){
                throw new Exception("Debe ser mayor a 0");
            }
            String par = "SI";
            try {
                for (int i = 0; i < str.length(); i++) {
                    intermedio = Integer.parseInt(str.charAt(i) + "");
                    if (intermedio % 2 != 0) {
                        par = "NO";
                        throw new Exception("");//PARAMOS LA EJECUCION DEL PROGRAMA
                    }
                }
            } catch (Exception ex) {

            }
            System.out.println(par);
        } catch (Exception ex) {
            System.out.println("Debes poner un número válido");
        }

Esto ha sido todo por el tutorial, espero que hayan aprendido algo, si es así puedes suscribirte a mi página en Facebook o seguirme en twitter para recibir contenido similar, un saludo y hasta la próxima.


FUENTE:

https://www.aceptaelreto.com/problem/statement.php?id=165&cat=36
thumbnail

Reto Cuadrados Perfectos en Java


Square number 9.png

Hola querido lector, hoy estoy aquí con el tema de los cuadrados perfectos, en qué consiste? Básicamente hacer un cuadrado de un número entero y que éste no tenga decimales. Uno de esos casos es por ejemplo el el número 9 que es igual a 3*3.

Aquí dejo el enunciado:

Conseguir un cuadrado perfecto


Cuadrados imperfectos
Un número es un cuadrado perfecto si su raíz cuadrada es un número exacto (sin decimales). Por ejemplo, el 4 es un cuadrado perfecto (2²), al igual que lo son el 36 (6²) y el 3.500.641 (1871²).
Todos los números que no son cuadrados perfectos pueden multiplicarse por otros para conseguir serlo. Por ejemplo, el número 8 no es un cuadrado perfecto, pero al multiplicarlo por 2 se obtiene el 16, que sí lo es.

Entrada

La entrada comienza con un número que indica cuántos casos de prueba tendrán que procesarse.
Cada caso de prueba consiste en un número mayor que 0 y menor que 231.

Salida

Para cada caso de prueba, el programa escribirá por la salida estándar, en una línea independiente, el número más pequeño que al ser multiplicado por el número del caso de prueba da como resultado un cuadrado perfecto.

Aquí dejo el código para que los estudiéis en Java:

        try {
            double numero, raiz;
            int numeroA, numeroB;
            Scanner sca = new Scanner(System.in);
            int num = sca.nextInt();
            numero = Double.parseDouble(num + "");

            String str;
            String[] arrStr;
            raiz = Math.sqrt(numero);
            str = raiz + "";
            arrStr = str.split("\\.");
            numeroA = Integer.parseInt(arrStr[0]);
            try {
                numeroB = Integer.parseInt(arrStr[1].replaceAll("0", "").substring(0, 8));
            } catch (Exception ex) {
                numeroB = 0;
            }

            if (numeroB == 0) {
                System.out.println("Cuadrado Perfecto");
            } else {
                System.out.println("Cuadrado Imperfecto");
            }
        } catch (Exception ex) {
            System.out.println("Debes de poner un número válido");
        }

Esto ha sido por el tutorial de hoy, espero que os haya gustado, que hayáis aprendido y si queréis contenido similar, podéis seguirme en mi página de Facebook o twitter.

FUENTE:

https://www.aceptaelreto.com/pub/problems/v004/14/st/statements/Spanish/index.html

thumbnail

Reto División Euclídea en Java



Hola querido lector, hoy he querido hacer un reto de programación de #AceptaElReto, es sobre la división euclídea, básicamente agarrar el resto y el cociente, y mostrarlo. La división euclídea es básicamente (cociente*divisor)+resto=dividendo, la verdad un reto bastante entretenido, os dejo el enunciado:


División euclídea


Euclides
Cuando en la escuela nos enseñan a dividir, nos explican qué son el dividendo, el divisor, el cociente y el resto. Intuitivamente aprendemos que la división sirve para repartir un número determinado de cosas (dividendo) entre una serie de personas (divisor). El resultado de la operación nos indica a cuántas cosas tocan cada uno (cociente) y cuántas sobran (resto).
Esa es la que se llama división euclídea (o entera) de números naturales, es decir números no negativos. Enseguida aprendemos, además, que no tiene sentido repartir algo entre cero personas y por lo tanto el divisor no puede ser nulo.
Formalmente, la división euclídea entre dos números enteros a y b (siendo b un número distinto de cero) calcula un cociente q y un resto r asociados a esos a y b, que cumplen que a = b × q + r, y donde el resto r es siempre un entero no negativo, 0 ≤ r < |b|.
Aunque la definición es fácil de entender y aplicar cuando trabajamos con números positivos, hay que pensarlo con un poco más de cuidado antes de contestar cuál es el resultado de la división cuando el dividendo o el divisor son negativos.

Entrada

La entrada comienza con un número indicando la cantidad de casos de prueba que deberán procesarse. Cada caso de prueba aparece en una línea independiente y está compuesto por dos números enteros, primero el dividendo y luego el divisor. Ninguno será mayor que 10.000 en valor absoluto.

Salida

Para cada caso de prueba, el programa escribirá en una línea el cociente y el resto de la división euclídea separados por un espacio. En el caso de que el divisor sea 0 se escribirá únicamente DIV0.




Aquí esta nuestro código:

        try {
            int dividendo, divisor, resto, cociente;//cociente no puede ser cero
            Scanner sca = new Scanner(System.in);
            String str;
            String arrStr[];
            System.out.println("Escriba el dividendo y el divisor:");
            str = sca.nextLine();
            arrStr = str.split(" ");

            dividendo = Integer.parseInt(arrStr[0]);
            divisor = Integer.parseInt(arrStr[1]);
            if (dividendo == 0 || divisor == 0) {
                throw new Exception("DIV0");
            }
            cociente = dividendo / divisor;
            resto = dividendo % divisor;
            System.out.println("Cociente Resto");
            System.out.println(cociente + " " + resto);
        } catch (Exception ex) {
            if (ex.getMessage().equals("DIV0")) {
                System.out.println(ex.getMessage());
            } else {
                System.out.println("Debes poner un número entero");
            }
        }

Esto ha sido todo por este tutorial, si te ha gustado y quieres recibir contenido similar, puedes apuntarte a mi página en Facebook o seguirme en twitter, un saludo y hasta la próxima.
thumbnail

Calcular Área y Perímetro de Rectángulo en Java


Equipo, Equipos, Tecnologia Computacional, Habitación

En este tutorial muestro cómo hallar área y perímetro de un rectángulo en Java, para ello se emplea la fórmula de área que es a*b, y del perímetro que es (2*a)+(2*b), me ha parecido algo muy interesante hacerlo, y muy entretenido por aquí os lo dejo.

        try {
            Scanner sca = new Scanner(System.in);
            float a, b, perimetro, area;
            System.out.println("Programa para sacar área y perímetro de rectángulo.");
            System.out.println("Pongame el lado A:");
            a = sca.nextFloat();
            System.out.println("Pongame el lado B:");
            b = sca.nextFloat();

            perimetro = (2 * a) + (2 * b);
            area = a * b;

            System.out.println("El perímero es " + perimetro + " el área es " + area);

        } catch (Exception ex) {
            System.out.println("Debes de poner la comas con '.' y números");
        }

Esto ha sido todo, si os ha gustado este tutorial y queréis recibir contenido similar, sólo os debéis de suscribir a mi página en Facebook o mi twitter, y poco más, un saludo y nos vemos, pronto, hasta la próxima.
thumbnail

Reto Convertir segundos en días, horas, minutos y segundos en Java





Hola querido lector, si eres de los que me suele seguir en mis redes sociales, te habrás dado cuenta que me gusta escribir algoritmos, y resolver retos y katas en mi tiempo libre, suelo emplear Java, ya que es un lenguaje de programación multiplataforma, y que sirve para multitud de propósito. Java se basa principalmente en el paradigma de orientación a objetos, si eres principiante y no sabes por dónde empezar, sin lugar a duda, te recomiendo que vayas a mi curso de Java en Youtube.

Hoy les traigo una pequeña kata en la cual me lo he inventado yo, y consiste básicamente en una aplicación que pide un número de segundos (número entero), y el programa se va a encargar de convertirlo en días, horas, minutos y segundos.

Ha sido un programa facilito, básicamente se basa en que 24 horas son 86400 segundos, las horas son 3600 segundos, y los minutos son 60 segundos, a partir de aquí, empleando la división y resto prácticamente se puede hacer el programa



        try {
            int segundosFacilitado;
           
            int minutos;
            int segundosFinal;
            int horasFinal;
            int horas;
            int dias;
            Scanner sca = new Scanner(System.in);
            System.out.println("Dime una cantidad en segundos");
            segundosFacilitado = sca.nextInt();
            if (segundosFacilitado <= 0) {
                throw new Exception("Debes poner una cantidad válida");
            }
            dias = segundosFacilitado / 86400;
            int diasFinal = segundosFacilitado % 86400;
            horas = diasFinal / 3600;
            horasFinal = diasFinal % 3600;

            minutos = horasFinal / 60;
            segundosFinal = horasFinal % 60;
            System.out.println(" Son " + dias + " días, " + horas + " horas" + ", " + minutos + " minutos, " + segundosFinal + " segundos ");
        } catch (Exception ex) {
            System.out.println("Error a la hora de introducir el código cod:" + ex.getMessage());
        }



Bueno, espero que os haya gustado mi código, que lo estudiéis, si queréis más contenido como éste puedes seguirme en mi página en Facebook o en mi twitter, no tengo nada más que decir, hasta la próxima, chao ;)
thumbnail

Reto Precios Tienda Gadgets en Java




Hola queridos lectores, hoy traigo aquí un nuevo reto, pero esta vez el reto me lo he inventado yo, para que luego digan que yo no tengo ideas :). Bueno lo que ocurre realmente es que prefiero hacer retos creados por otra persona y que tal vez, su post no es tan conocido, que hacerlo yo, prácticamente de cero.

RETO

En este reto me he puesto yo, como que voy a crear un tienda de Gadgets y fundas de móviles, como es bien sabido nadie puede competir con las grandes tiendas y almacenes, por eso, lo primero que vamos a hacer es calcular el porcentaje y luego redondearlo a lo alto. Si el objeto es menor de 5€ vamos a ponerle de precios 3 veces su valor y múltiplo de 2, si es menor a 10€ un 25% más y múltiplo de 2, y si es menor a 200€ le ponemos un 20% más y multiplo de 5, y a partir de 200€ le ponemos un 10% más y múltiplo de 10.

Los múltiplos están pensados para que siempre haya efectivo en la caja.

Bueno aquí os dejo mi código, espero que os sirva :) :

        try {
            double cantidad;
            Scanner sca = new Scanner(System.in);
            String str = "";
            System.out.println("Escríbeme una cantidad");
            str = sca.nextLine();
            str = str.replace(",", ".");//Para que no haya problemas con los puntos y comas
            cantidad = Double.parseDouble(str);

            if (cantidad < 0) {
                throw new Exception("La cantidad debe ser positiva");
            }

            if (cantidad < 5) {
                cantidad = cantidad * 3;
                cantidad = Math.ceil(cantidad);
            } else if (cantidad < 10) {
                cantidad = cantidad * 1.25;
                cantidad = Math.ceil(cantidad);
                while (cantidad % 2 != 0) {
                    cantidad = cantidad + 1;

                }
            } else if (cantidad < 200) {
                cantidad = cantidad * 1.2;
                cantidad = Math.ceil(cantidad);
                while (cantidad % 5 != 0) {
                    cantidad = cantidad + 1;
                }
            } else {
                cantidad = cantidad * 1.1;
                cantidad = Math.ceil(cantidad);
                while (cantidad % 10 != 0) {
                    cantidad = cantidad + 1;
                }

            }
            System.out.println("El precio final es " + cantidad);

        } catch (Exception ex) {
            System.out.println("Debes de poner una cantidad valida Cod: " + ex.getMessage());
        }


Pues nada me despido de este tutorial, si os ha gustado, y deseáis leer más contenido así, me puedes seguir en mi página en Facebook o en mi twitter, sin más me despido, hasta la próxima.
thumbnail

Reto de Los Tres Últimos Dígitos en Java

Código, Codificación, Programación, As1, Macbook

Hola querido lector, hoy traigo otro reto, en este caso de la página de Nacho Cabanes, en la cual tenemos que hacer una operación y agarrar los 3 últimos números antes del decimal (.), es un ejercicio bastante entretenido aquí os dejo el enunciado:

Debes encontrar los tres últimos dígitos antes de la coma decimal para (3 + raíz(5)) elevado a n.
Por ejemplo, para n = 5, (3 + √5)5 = 3935.73982... La respuesta es 935.
Para n = 2, (3 + √5)2 = 27.4164079... La respuesta es 027.
El primer dato de entrada será la cantidad de valores que se van a analizar.
Nota: el programa no debe avisar al usuario con mensajes como "Introduzca un número". Debe leer directamente de consola en el formato que se muestra en el apartado "Entradas y salidas de ejemplo". La salida debe ser exactamente como se muestra en ese apartado. El programa debe comportarse bien con valores grandes, de al menos n=30 (sería deseable que también con valores por encima de 1.000.000).

Básicamente lo que he hecho ha sido:

1) Pedir número
2) Despegar con split, la primera cifra
3) Obtener cálculo: numero.lenght-3
4) Jugar con esta característica en 2 bucles bien diferenciados

Espero que os guste mi código, por aquí lo dejo:

try {

            double numero;
            int potencia;
            String[] numeros;
            String numeroString;
            String Intermedio = "", numeroFinal;
            int longitudString;

            Scanner sca = new Scanner(System.in);
            System.out.println("Escribeme un número");
            potencia = sca.nextInt();

            numero = (double) Math.pow((3 + Math.sqrt(5)), potencia);
            //System.out.println("" + numero);
            numeroString = numero + "";

            numeros = numeroString.split("\\.");
            String str = numeros[0];
            longitudString = numeros[0].length() - 3;

            if (longitudString > 0) {
                numeroFinal = "";
                for (int i = longitudString; i < numeros[0].length(); i++) {
                    numeroFinal = numeroFinal + numeros[0].charAt(i);
                }

            } else {
                numeroFinal = numeros[0] + "";
                do {
                    numeroFinal = "0" + numeroFinal;
                    longitudString = longitudString + 1;

                } while (longitudString < 0);
            }
            System.out.println("El numero es " + numeroFinal);
        } catch (Exception ex) {
            System.out.println("Ponga un número válido cod: " + ex.getMessage());
        }


Bueno esto ha sido todo por este tutorial, si quieres recibir contenido de este tipo, puedes seguirme en mi página de Facebook o en twitter, redes que encontrarás al lado derecho, del inicio de esta página, un saludo, chao

FUENTE:

http://www.nachocabanes.com/retos/reto.php?n=004
thumbnail

Reto Números de Lychrel en Java



Trabajo, Escribir, Equipo, Portátil, Programación


Hola querido lector, cómo estáis? Yo la verdad estoy bastante bien, con mucha energía, y nada he estado viendo un par de retos de aceptaelreto.com, y he visto un reto, en el cual voy a aprovechar código de otro tutorial que hice "invertir palabras en Java", para ello:

Cuando se aburren, los aficionados a las matemáticas se dedican a jugar con los números. Eso les lleva, por ejemplo, a coger cualquier número, darle la vuelta y sumarlo a sí mismo, repitiendo el proceso una y otra vez hasta dar con un número capicúa. Por ejemplo, para el 91 llegamos a un capicúa en sólo dos pasos:
91 + 19 = 110
110 + 011 = 121
Algunos números se resisten a alcanzar un capicúa. El 196 es el número más pequeño para el que no se ha llegado a ninguno, por más que se ha intentado. Los matemáticos no han podido demostrar que, efectivamente, no vaya a llegarse a uno. Mientras continúan buscando una demostración, los aficionados siguen sumando y sumando con la esperanza de llegar a él. Los números con los que, se sospecha, no puede alcanzarse un capicúa se conocen como números de Lychrel. Curiosamente, algunos números capicúa parecen ser también números de Lychrel.

Entrada

La entrada comienza con un número indicando la cantidad de casos de prueba que vendrán a continuación. Cada caso de prueba estará compuesto de un número 1 ≤ n ≤ 100.000.

Salida

Para cada caso de prueba n, el programa deberá indicar el número de iteraciones que hay que dar hasta llegar a un número capicúa, seguido del número capicúa alcanzado. Si durante el proceso se llega a un número mayor que 1.000.000.000, se deberá asumir que el capicúa no es alcanzable y escribir "Lychrel?"1.




Aquí dejo los pasos para resolver este problema
1) Agarro un número
2) Lo convierto en texto
3) Le doy la vuelta
4)Lo convierto en Entero y lo comparo con el original

Aquí les dejo el código:

        int numeroFacilitado;
        int numOri;
        int numeroInvertido;
        Scanner sca = new Scanner(System.in);
        String stringFacilitado;
        String stringInvertido;
        int longitud;
        boolean repetir = true;
        boolean lychrel = true;
        int maximo = 100000;
        int contador = 0;

        try {
            System.out.println("Escríbame algún número:");
            numeroFacilitado = sca.nextInt();
            numOri = numeroFacilitado;
            stringFacilitado = numeroFacilitado + "";
            do {

                stringInvertido = "";
                stringFacilitado = numeroFacilitado + "";
                longitud = (int) stringFacilitado.length() - 1;
                do {

                    stringInvertido = stringInvertido + stringFacilitado.charAt(longitud);//nos devuele el carácter en la posición
                    longitud = longitud - 1;//vamos restando posiciones

                } while (longitud >= 0);

                numeroInvertido = Integer.parseInt(stringInvertido);

                if (numeroInvertido == numeroFacilitado) {
                    System.out.println(numOri + " " + numeroFacilitado + " en " + (contador) + " iteraciones");
                    lychrel = false;
                    repetir = false;
                }
                numeroFacilitado = numeroFacilitado + numeroInvertido;
                contador = contador + 1;
            } while (contador < maximo && repetir);
            if (lychrel == true) {
                System.out.println("Lychrel?");
            }
        } catch (Exception ex) {
            System.out.println("Debes de poner un número válido");
        }


Bueno espero que os haya gustado y entretenido, si quieres recibir más contenido similar te recomiendo que te suscribas a mi página en facebook que está al principio de esta web.

FUENTE
https://www.aceptaelreto.com/problem/statement.php?id=205
thumbnail

Mini-Reto: Suma de Números en Java

Monitor, Binaria, Sistema Binario, Equipo


Hola querido lector, hoy he visto un pequeño reto de la página de Nacho Cabanes, dicho reto proponía que escribieras un número, descomponerlo y sumar sus cifras, es un reto que abajo os pongo la fuente que de donde lo que sacado. Debo de decir que he usado este reto debido a que hoy no he tenido tiempo para ponerme con otro, aun así espero que os guste.

Se trata de implementar un programa que sume los dígitos de un número entero no negativo. Por ejemplo, la suma de los dígitos del 3433 es 13.
Para darle un poco más de emoción, el programa no se limitará a escribir el resultado de la suma, sino que también escribirá todos los sumandos utilizados: 3 + 4 + 3 + 3 = 13.
Entrada
La entrada consta de una serie de casos de prueba terminados con un número negativo. Cada caso de prueba es una simple línea con un número no negativo no mayor que 109 del que habrá que sumar todos sus dígitos.
Salida
Para cada caso de prueba se mostrará una línea en la que aparecerán cada uno de los dígitos separados por el signo +, tras lo cual aparecerá el símbolo = y la suma de todos los dígitos.
Ten en cuenta que antes y después de cada símbolo (+ y =) hay un espacio.
Nota: el programa no debe avisar al usuario con mensajes como "Introduzca un número". Debe leer directamente el número que introduzca el usuario y la respuesta debe ser exactamente como aparece aquí explicado y como se puede comprobar en el ejemplo. (Asegúrate de que has leído el resto de preguntas frecuentes antes de plantear tu solución)

Pues nada dicho esto, aquí os posteo mi solución:

    try{
        
        Scanner sca = new Scanner(System.in);
        String numeroIntermedio;
        int numero;
        int calculo=0;
        String intermedio="";
        
        numero =1256;
        numeroIntermedio=numero+"";
        if (numero <=0){
            throw new Exception("Debes de poner un número entero");
        }
        for (int i=0;i<numeroIntermedio.length();i++){
            
            if (i==numeroIntermedio.length()-1){
             intermedio=intermedio+ numeroIntermedio.charAt(i)+ " = ";
            }else{
                intermedio=intermedio+ numeroIntermedio.charAt(i)+ " + ";   
            }
            calculo=calculo+Integer.parseInt(numeroIntermedio.charAt(i)+"");
            
        }
        
        System.out.println( intermedio+calculo);
        }catch (Exception ex){
            System.out.println("Error cod: "+ex.getMessage());
        }


Un saludo, espero que os haya gustado, si quieres más contenido como este sígueme en mi página de Facebook y mi Twitter, un saludo y hasta la próxima.



FUENTE
http://www.nachocabanes.com/retos/reto.php?n=024







thumbnail

Reto de las Piscinas en Java

Programación, Html, As1, Javascript, Php


Hola querido lector, hoy es cuando he tenido más tiempo, y lo he aprovechado para hacer un reto de aceptaelreto.com, la verdad ha sido un reto del cual todo gira alrededor de la formula:

litros de la piscina = litros de las piscina +(litros del barreño-litros que pierde)

Debemos de tener cuidado con el tema de que lo que se pierda debe de ser superior que lo que se añade al barreño, de lo contrario, eso empezará a hacer un bucle infinito, debido a la naturaleza del código.

Con todo esto explicado, vamos a leer el ejercicio:

Se acerca el verano y llega el momento de sacar de los armarios y trasteros las piscinas para los niños (y no tan niños), colocarlas en la terraza, patio o jardín y llenarlas de agua para que los pequeños de la casa puedan empezar a disfrutarlas.
Este año la tarea se presenta complicada porque durante el invierno la larga manguera que permitía llevar el agua desde el grifo de la cocina hasta la propia piscina se ha perdido y habrá que hacerlo con un barreño…
Para complicar aún más las cosas, también durante el invierno la piscina (a pesar de ser de fibra de vidrio) se ha pinchado y pierde un poco de agua. Aún así, como los pequeños están ansiosos por darse un chapuzón decidimos llenarla cuanto antes, con pinchazo incluido, y luego mientras ellos disfrutan lo arreglaremos. Dado que la piscina está perdiendo agua constantemente, estará llena únicamente durante un instante de tiempo. En ese preciso momento dejaremos de hacer viajes a la cocina y nos pondremos rápidamente a arreglarla.
Como dice el refrán "mal de mucho consuelo de tontos"; la tarea de llenado será un poco más llevadera gracias al consuelo de saber que nuestro vecino está en la misma situación. A través del seto del jardín podemos verle haciendo viajes como un loco de su cocina a su piscina, para compensar el pinchazo que también él tiene. La pregunta es ¿quién tardará menos en llenar la piscina?

Entrada



La entrada estará compuesta de múltiples casos de prueba, cada uno en una línea.
Cada uno de los casos de prueba empezará con la descripción de una "competición" entre nosotros y el vecino. Los tres primeros números indican los litros de agua de nuestra piscina (1≤ p ≤ 109), el número de litros de nuestro barreño (1 ≤ b ≤ 109) y por último los litros de agua que la piscina pierde durante el viaje. A continuación aparecen tres números para indicar la misma información pero de nuestro vecino.
La entrada termina cuando alguna de las piscinas no tiene capacidad (aparece a cero).


Salida



Para cada caso de prueba aparecerá una línea compuesta por el ganador y el número de viajes que ha realizado. Como ganador, se indicará YOsi nosotros terminamos antes de llenar la piscina (hacemos menos viajes para conseguirlo) y VECINO si es el vecino. En caso de empate, se indicará EMPATE.


Entrada de ejemplo



10 5 1 15 6 1
50 5 1 50 5 0
50 5 1 50 5 6
0 0 0 0 0 0


Salida de ejemplo



EMPATE 3
VECINO 10
YO 13




Aquí os dejo mi código:

 try {
            float litrosPiscinaV1, litrosBarrenoV1, litrosPierdeV1;
            float litrosPiscinaV2, litrosBarrenoV2, litrosPierdeV2;

            boolean repetir = true;
            String cadena = "";
            String[] datos;
            float[] datosFloat;
            Scanner sca = new Scanner(System.in);
            System.out.println("Dime los datos con espacios (litrosPiscina1 litrosBarreño1 litrosPierde1 litrosPiscina2 litrosBarreño2 litrosPierde2):");
            cadena = sca.nextLine();
            datos = cadena.split(" ");
            if (datos.length != 6) {
                throw new Exception("Debes de poner 6 datos");
            }

            datosFloat = new float[datos.length];
            for (int i = 0; i < datos.length; i++) {
                datosFloat[i] = Float.parseFloat(datos[i]);
            }
            litrosPiscinaV1 = datosFloat[0];
            litrosBarrenoV1 = datosFloat[1];
            litrosPierdeV1 = datosFloat[2];

            litrosPiscinaV2 = datosFloat[3];
            litrosBarrenoV2 = datosFloat[4];
            litrosPierdeV2 = datosFloat[5];
            if (litrosBarrenoV2 >= litrosPierdeV2 && litrosBarrenoV2 >= litrosPierdeV2) {
                throw new Exception("Los litros que pierden debe de ser superior a los del barreño");
            }
            do {
                litrosPiscinaV1 = litrosPiscinaV1 + (litrosBarrenoV1 - litrosPierdeV1);
                litrosPiscinaV2 = litrosPiscinaV2 + (litrosBarrenoV2 - litrosPierdeV2);

                if (litrosPiscinaV1 < 0 | litrosPiscinaV2 < 0) {//se repetirá hasta que al menos uno sea menor a cero
                    repetir = false;
                }
            } while (repetir);

            if (litrosPiscinaV1 == litrosPiscinaV2) {
                System.out.println("Empate");
            } else if (litrosPiscinaV1 > litrosPiscinaV2) {
                System.out.println("Vecino 1");
            } else if (litrosPiscinaV1 < litrosPiscinaV2) {
                System.out.println("Vecino 2");
            }

        } catch (Exception ex) {
            System.out.println("Debes de poner 6 números separados con espacios cod: " +ex.getMessage());
        }

Espero que os haya gustado y hayáis aprendido algo, si quieres saber cuando subo un nuevo contenido, puedes seguirme en mi página de Facebook o en mi Twitter.

FUENTE:

https://www.aceptaelreto.com/problem/statement.php?id=131

Sponsor

Popular Posts

Con la tecnología de Blogger.