[LeetCode]Add Digits

Add Digits

Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.

For example:

Given num = 38, the process is like: 3 + 8 = 111 + 1 = 2. Since 2 has only one digit, return it.

Follow up:
Could you do it without any loop/recursion in O(1) runtime?

 

 不用循环和递归!这个问题有公式可用,对于数字num,result=1+(num-1)%9。

可以参考wiki的Digital root

1 class Solution {
2 public:
3     int addDigits(int num) {
4         int result=1+(num-1)%9;
5         return result;
6     }
7 };

 

posted @ 2015-08-17 16:59  Sean_le  阅读(166)  评论(0编辑  收藏  举报