这个题有个O(1)的解法。
数学trick:https://en.wikipedia.org/wiki/Digital_root
原理解析:
以138为例
138 = 1+3+8=12=1+2=3
138 = 1 * (99+1) + 3 * (9+1) + 8 = 1 + 3 + 8 (这步相当于138 mod 9)
1 + 3 + 8 = 12 = 1 * (9+1)+2 = 3 (这步也相当于12 mod 9)
总结起来,有3种情况:
第一种,n为0时,那么结果就是0
第二种,n mod 9 = 0时,那么结果为9. 例如 n=18,结果是1+8=9
第三种,n mod 9 不等于0,那么结果就是n mod 9
即: