diff options
Diffstat (limited to 'other/add_digits.cpp')
-rw-r--r-- | other/add_digits.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/other/add_digits.cpp b/other/add_digits.cpp new file mode 100644 index 0000000..ec8abfa --- /dev/null +++ b/other/add_digits.cpp @@ -0,0 +1,26 @@ +// 258. Add Digits +#include "leetcode.h" + +// given an integer 'num', repeatedly add all its digits until +// the result has onlye one digit and return it + +class Solution { +public: + int addDigits(int num) { + int sum = 0; + while (num) { + sum += num % 10; + num /= 10; + } + if (sum < 10) + return sum; + else + return addDigits(sum); + } +}; + +int main() { + Solution obj; + printf("%d\n", obj.addDigits(38)); // expect: 2 + printf("%d\n", obj.addDigits(0)); // expect: 0 +} |