首页 > 代码库 > 258. Add Digits
258. Add Digits
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.
Solution1:
非常strightforward,算和,看是不是single digit。
public class Solution { public int addDigits(int num) { while(num/10!=0) { num=sum(num); } return num; } public int sum(int num) { int res=0; while(num!=0) { res+=num%10; num/=10; } return res; } }
Solution2:
follow up: O(1)
ref:https://en.wikipedia.org/wiki/Digital_root
有规律的。。。除9余数为0,树根为9.除9余数不为零,为余数。0的树根为0.
public class Solution { public int addDigits(int num) { if (num == 0){ return 0; } if (num % 9 == 0){ return 9; } else { return num % 9; } }}
258. Add Digits
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。