Wednesday, October 12, 2011

Find Sum of Digits of a Number in C

Objective: Your are given a number and you have to find the sum of its digits. Like 1234 so its digits sum 1+2+3+4=10.

Programming technique : This problem  can be solved using the fact that modulus operator (%) gives the last digit when divided by 10. So we successively Divide it , till all numbers are exhausted.
so The program runs like this >>
1234%10 gives last digit. that is 4. (we save it ) then divide the number by 10 to reduce it.
1234/10=123. and repeat the process till the number becomes 0.
First run : 1234%10 gives 4, 1234/10=123.
Second run: 123%10 gives 3 , 123/10=12.
Third Run :12%10 gives 2 , 12/10=1
Fourth run: 1%10 gives 1, 1/10=0 (we stop here).
pretty easy stuff.

Code :-
#include<stdio.h>

int main()
{
    int k;
    printf("\n enter any number=");
    scanf("%d",&k);
    printf("\n sum of digit=%d",sumdigit(k));
          return(0);
}

int sumdigit(int x)
{
    int sum=0;// will save sum
    int r=0; // for remainder
    while(x>0)
    {
        r=x%10;//get remainder
        sum+=r;//sum it
        x=x/10;    //reduce number
    }
    return(sum);
}

No comments:

Post a Comment