Jun 112012
 

Write a function which should accept an integer and should return the sum of digits in that integer. This function should compute the sum of digits recursively. For example:

Input      Output
——–         ———–
56          11 (5+6)
1234        10 (1+2+3+4)

Solution:

The non-recursive (iterative) function to compute the sum of digits is quite simple. We have to use / (division) and % (modulo) operator

int sumDigits(int n)
{
    int sum = 0;
    while(n > 0)
    {
         sum += n%10;
         n = n /10;
    }
    return sum;
}

The recursive function, will compute extract one digit, add it to the sum and then leave the responsibility of other digits to the following recursive calls:

int sumDigits(int n)
 {
     if(n > 0)
     {
          n = n%10 + sumDigits(n/10);
     }
     return n;
 }

Note that recursion comes with its side effects and takes more time and space as compared to the iterative version.

vliegen123.nl

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)