Contar números acabados en 2

Programa que lea una serie de números por teclado hasta que se lea un número negativo. El programa indicará cuántos números acabados en 2 se han leído.

Para saber si un número acaba en dos o en general para saber en qué dígito termina un número entero se divide el número entre 10 y se obtiene el resto de esta división.
En Java el operador que obtiene el resto de una división es el operador %
En este caso para saber si el número acaba en 2 escribiremos la instrucción:
if(n%10==2)

import java.util.*;
/**
 * Programa que lea una serie de números por teclado hasta que
 * se lea un número negativo. El programa indicará cuántos números
 * acabados en 2 se han leído.
 * @author Enrique
 */
public class AcabadosEn2 {

    public static void main(String[] args) {
 
        Scanner sc = new Scanner(System.in);
        int n, contador=0;
  
        System.out.print("Introduce un número entero: ");
        n = sc.nextInt();
        while(n>=0){
              if(n%10==2){      //Si el número acaba en dos, se cuenta
                 contador++;    //esta variable contendrá cuántos números acabados en 2 se han leído.             
              }
              System.out.print("Introduce un número entero: ");
              n = sc.nextInt();
        }
        System.out.println("Se han introducido " + contador + " números acabados en 2");                          
    }
}


16 comentarios:

  1. amigo falta el comando "break;" al final para que no se cree un bucle infinito

    ResponderEliminar
    Respuestas
    1. Daniel no es necesario poner un break, el while se repite hasta que se introduzca un número negativo

      Eliminar
  2. hay que tratar de escribir un código más elegante señores....

    Scanner sc = new Scanner(System.in);
    int n, contador = 0;

    do {
    System.out.print("Introduce un número entero: ");
    n = sc.nextInt();

    if (n % 10 == 2)
    contador++;

    } while (n >= 0);

    System.out.println("Se han introducido " + contador + " números acabados en 2");

    ResponderEliminar
  3. Holaa, y que pasaria si el numero negativo fuera acabado en 2?? A mi no me cuenta taal numero.

    ResponderEliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  5. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  6. Hago una aportación del ejercicio más avanzada:

    package ejerciciosGenerales;

    import java.util.Scanner;

    public class Ejer5 {
    // Leer un numeroS y contar cuantoS acaban en 2
    public static void main(String[] args) {
    Scanner scn = new Scanner(System.in);

    System.out.print("Introduzca el total de numeros que desea ingresar: ");

    int todosNumeros = scn.nextInt();

    int[] numeros = new int[todosNumeros];

    System.out.println("Introduzca " + todosNumeros + " numeros: ");

    for (int i = 0; i < numeros.length; i++) {

    System.out.print("Numero " + (i + 1) + ": ");

    numeros[i] = scn.nextInt();
    }
    System.out.println("Los numeros introducidos son: ");

    try {
    for (int i = 0; i < numeros.length; i++) {

    System.out.println(numeros[i]);
    }
    } catch (Exception exc) {
    // TODO Auto-generated catch block
    exc.printStackTrace();
    }

    System.out.println("Y los numeros acabados en 2 son: ");
    for (int i = 0; i < numeros.length; i++) {
    if (numeros[i] % 10 == 2) {

    System.out.println(numeros[i]);

    }
    }
    }
    }

    ResponderEliminar
    Respuestas
    1. Necio, J.G me salvaste, necesitaba un código justo como el que tu pusiste, sos groso.

      Eliminar
  7. necesito un código que no se haga infinito

    ResponderEliminar
    Respuestas
    1. No es infinito. El programa termina cuando se introduce un número negativo.

      Eliminar
  8. Necesito un Hero sin capa si me lo podria pasar en Programacion orientada a objetos por favor

    ResponderEliminar
  9. Y si quiero que pare con n cantidad de números?

    ResponderEliminar
  10. Muchas gracias, la verdad me sirvió mucho para poder realizar mi trabajo de la universidad

    ResponderEliminar