Given a non-negative int n, return the sum of its digits recursively (no loops). Note that mod (%) by 10 yields the rightmost digit (126 % 10 is 6), while divide (/) by 10 removes the rightmost digit (126 / 10 is 12).
sumDigits(126) → 9
sumDigits(49) → 13
sumDigits(12) → 3
Do you remember how to break up an integer into the LAST digit and the REST using % and / .yes
RECURSION is probably the single most important and elegant topic in computer science.where should i read up on it? Any best material,book, site?
You should really read up on it if you don't understand the concept. Challenges are not going to be enough.
public int sumDigits(int n) {
if (n < 10)
{return n;
}
return (n % 10) + sumDigits(n/10);
}
if (n < 10)Brilliant! I like your base case much better.
{return n;
Recursion works by letting a function call itself multiple times, each time with a smaller or simpler argument.
The pseudo code would be something like:
Open in new window
RECURSION is probably the single most important and elegant topic in computer science.
You should really read up on it if you don't understand the concept. Challenges are not going to be enough.