您的位置:首页 > 其它

(easy)LeetCode 258.Add Digits

2015-08-19 16:31 330 查看
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?

方法1:常规做法,循环,不符合题意。

public class Solution {
public int addDigits(int num) {
while(num>9){
int p=0;
while(num!=0){
p+=num%10;
num=num/10;
}
num=p;
}
return num;
}
}


方法2:找到规律,一行代码

代码如下:

public class Solution {
public int addDigits(int num) {
return (num-1)%9+1;
}
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: