[LeetCode] #258 各位相加
给定一个非负整数 num
,反复将各个位上的数字相加,直到结果为一位数。
输入: 38
输出: 2
解释: 各位相加的过程为:3 + 8 = 11
, 1 + 1 = 2
。 由于 2
是一位数,所以返回 2。
有的类似于[LeetCode] #202 快乐数
class Solution { public int addDigits(int num) { if(num < 10) return num; int sum = 0; while (num != 0) { int d = num % 10; num = num / 10; sum += d; } return addDigits(sum); } }
数学解法
X = 100*a + 10*b + c = 99*a + 9*b + (a+b+c)
class Solution { public int addDigits(int num) { return (num - 1) % 9 + 1; } }
知识点:无
总结:无