Sumar las cifras de un número

Cómo calcular la suma de las cifras de un número en Java

Programa Java para obtener la suma de las cifras de un número entero. El programa leerá por teclado un número entero positivo y calculará la suma de sus cifras. 

Por ejemplo, si se introduce el número 3601 el programa mostrará:

La suma de sus cifras es: 10 

Solución:

Para resolverlo debemos obtener cada una de las cifras del número y sumarla. 

Tendremos una variable suma donde iremos acumulando la suma de las cifras.

El proceso de obtener una cifra y sumarla lo podemos realizar de esta forma:

supongamos que el número introducido N = 591

el valor inicial de suma es cero

suma = 0

Obtenemos la cifra de la derecha del número (el 1) realizando el resto de la división del número entre 10

591 % 10 -> 1

La cifra obtenida la acumulamos en la variable suma: 

suma = suma + cifra

suma = 0 + 1 -> suma = 1

Quitamos la cifra anterior (1) dividiendo el número entre 10 

591 / 10 -> 59

y repetimos el proceso

obtenemos la cifra de la derecha (el 9) y la acumulamos en la variable suma

59 % 10 -> 9

suma = 1 + 9 -> suma = 10

Quitamos la cifra anterior (9) dividiendo el número entre 10 

59 / 10 -> 5

y repetimos el proceso

obtenemos el 5 y lo acumulamos en la variable suma

5 % 10 -> 5

suma = 10 + 5 -> suma = 15

Quitamos el 5 dividiendo el número entre 10

5 / 10 -> 0

Cuando al dividir el número entre 10 obtenemos un cero significa que al número ya no le quedan más cifras y el proceso ha finalizado

En la variable suma tendremos la suma de las cifras del número.


/*
 * Calcular la suma de las cifras de un número 
 */
import java.util.Scanner;

public class SumaCifrasNumero {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n, suma, cifra;
        
        //leer un número entero positivo
        do {
            System.out.print("Introduce un número entero positivo: ");
            n = sc.nextInt();
            if (n <= 0) {
                System.out.println("Número no válido");
            }
        } while (n <= 0);
        
        suma = 0;     //esta variable contendrá la suma de las cifras del número                            
        
        while (n != 0) {           //mientras a n le queden cifras
            cifra = n % 10;        //obtenemos la ultima cifra del número
            suma = suma + cifra;   //sumamos la última cifra de n
            n = n / 10;            //le quitamos a n la última cifra 
        }
        
        System.out.println("La suma de sus cifras es: " + suma);
    }

}

1 comentario: