Write a recursive function called sumDigits with the following signature: public static long sumDigits(long n) that computes the sum of the digits in a number repeatedly, until the sum is a single digit. For example, if we call sumDigits(123456), the following would result: sumDigits(123456) => 1+2+3+4+5+6 => 21 => 2+1 => 3 so the final answer would be 3. You must meaningfully use recursion for this lab in order to receive any credit. Hint: For this problem it might be useful to convert back and forth between longs and strings. This can be done using the Long.parseLong method and the Long.toString method.

Respuesta :

tonb

Here you go:

   public static long sumDigits(long n) {

       if (n < 10) {

           return n; // our exit criterion

       }

       String str = Long.toString(n);

       long sum = 0;

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

           sum += Character.getNumericValue(str.charAt(i));

       }

       return sumDigits(sum);

   }