algorithmnumbersdigit

Algorithm for digit summing?


I'm searching for an algorithm for Digit summing. Let me outline the basic principle:

Say you have a number: 18268.

1 + 8 + 2 + 6 + 8 = 25

2 + 5 = 7

And 7 is our final number. It's basically adding each number of the whole number until we get down to a single (also known as a 'core') digit. It's often used by numerologists.

I'm searching for an algorithm (doesn't have to be language in-specific) for this. I have searched Google for the last hour with terms such as digit sum algorithm and whatnot but got no suitable results.


Solution

  • Because 10-1=9, a little number theory will tell you that the final answer is just n mod 9. Here's code:

    ans = n%9;
    if(ans==0 && n>0) ans=9; 
    return ans;
    

    Example: 18268%9 is 7. (Also see: Casting out nines.)