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);
}
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