给定一个非负整数 num,反复将其各位数字相加,直到结果只剩一位数为止。

例如,给定 num = 38,过程如下:3 + 8 = 11,1 + 1 = 2。由于 2 只有一位,返回它。

进阶:
能否在 O(1) 时间内不使用任何循环或递归来实现?

题目暗示这道题必然存在某种数学规律。写出几个数字找一找:

class Solution {
                public:
                    int addDigits(int num) {
                        if(num<10)return num;
                	num%=9;
                	if(num ==0 )return 9;
                        return num;
                    }
                };

这道题的知识点是 Digital root,详见 https://en.wikipedia.org/wiki/Digital_root。