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 = 11, 1 + 1 = 2. Since 2 has
only one digit, return it.
Follow up:
Could you do it without any loop/recursion in O(1) runtime?
class Solution {
public:
int addDigits(int num) {
if( num == 0)
return 0;
else
return ( num - 1 ) % 9 + 1;
}
};找规律,发现结果是模9循环的。数字类型的题目,很多都是找规律。
本文探讨了如何通过数字加和直至得到一位数的过程,并揭示了这一过程背后的数学规律,尤其关注如何在不使用循环或递归的情况下实现这一操作。通过深入分析和寻找模式,我们能够更高效地解决此类问题。
635

被折叠的 条评论
为什么被折叠?



