views:

67

answers:

2

How do I add the digits in a particular number for example if the number is 3234 the result should be 3+2+3+4 = 12?

+6  A: 

Something along the lines of this should do it:

int val = 3234;

int sum = 0;
while (val != 0) {
    sum += (val % 10);
    val = val / 10;
}

// Now use sum.

For continued adding until you get a single digit:

int val = 3234;

int sum = val;
while (sum > 9) {
    val = sum;
    sum = 0;
    while (val != 0) {
        sum += (val % 10);
        val = val / 10;
    }
}

// Now use sum.

Note that both of these are destructive to the original val value. If you want to preserve it, you should make a copy or do this in a function so the original is kept.

paxdiablo
missing semicolonsum += (val % 10);
Online
Thanks, @Online, fixed.
paxdiablo
thanks! now if I want to iterate this process until I get a single digit no from 1 to 9 how to do it.
nishantcm
for example 3+2++3+4=12 1+2 = 3. 3 shoiuld be the result.
nishantcm
while (len > 1) { sum=0; while (val != 0 ) { sum += (val % 10); val = val / 10; } val=sum; temp=[NSString stringWithFormat:@"%d", sum ]; len=[temp length]; }
nishantcm
Thanks! I could have done this thing so easily instead of finding the length and writing all that code to convert int to string.
nishantcm
+1  A: 

Hope it is not your homework !

int sum = 0;
while (value!=0) {
  sum += value % 10;
  value = value / 10;
}
Benoît
same answer as paxdiablo.... give point to him
Benoît
actually i have an idea about how to do this in php, but am unable to do this in objective c.
nishantcm
it is not objectiveC, but just C ! the algo is same as php...
Benoît
actually my algo in php sort of treats the number as an array. like number[0], number[1] and uses for each to add all the digits.
nishantcm