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
2010-10-27 11:28:49
missing semicolonsum += (val % 10);
Online
2010-10-27 11:40:29
Thanks, @Online, fixed.
paxdiablo
2010-10-27 11:44:55
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
2010-10-27 12:30:53
for example 3+2++3+4=12 1+2 = 3. 3 shoiuld be the result.
nishantcm
2010-10-27 12:31:25
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
2010-10-27 12:51:49
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
2010-10-28 09:07:11
+1
A:
Hope it is not your homework !
int sum = 0;
while (value!=0) {
sum += value % 10;
value = value / 10;
}
Benoît
2010-10-27 11:29:37