您的位置:首页 > 其它

[LeetCode]: 258: Add Digits

2015-09-02 22:39 295 查看
题目:

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?

分析:

需要时间复杂度是O(1),所以需要分析规律

经过计算1~30,得出结论:结果在1~9之间,提交代码为:

public static int addDigits(int num) {
int intRsult  = num%9;
if(intRsult == 0){
intRsult =9;
}
return intRsult;
}


但是结果报错,发现遗忘了输入为0的情况,修改代码为:

public:
int addDigits(int num) {
return 1 + (num-1)%9;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: