Reducir la suma de los dígitos de forma recursiva hasta un número de dígitos

Lior Roz:

¿Cómo hago una función devuelve la suma de todos los dígitos hasta que se convierte en un número de 1 dígito, utilizando la recursividad? Yo era capaz de hacer una función que obtiene la suma de todos los dígitos, pero parece que no puede encontrar una manera de resumir de forma recursiva los dígitos de la suma en sí:

class sum_of_digits 
{ 

    static int sum_of_digit(int n) 
    {  
        if (n == 0) 
            return 0; 
        return (n % 10 + sum_of_digit(n / 10)); 
    } 

    public static void main(String args[]) 
    { 
        int num = 12345; 
        int result = sum_of_digit(num); 
        System.out.println("Sum of digits in " +  
                           num + " is " + result); 
    } 
} 

Este código imprime la suma de '12345', que es 15. Pero tengo que cambiarlo por lo que imprime la suma de 1 + 5, que es 6.

cdlane:

cree usted que es posible hacer que funcione sin un método adicional?

¿Por qué no podemos simplemente dejar que la recursividad haga el trabajo por nosotros y simplemente decir:

static int sum_of_digit(int n) 
{  
    if (n < 10) 
        return n;

    return sum_of_digit(n % 10 + sum_of_digit(n / 10)); 
} 

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=197415&siteId=1
Recomendado
Clasificación