Given a non-negative integer num
, repeatedly add all its digits until the result has only one digit.
Example
Given num
= 38.
The process is like: 3 + 8 = 11
, 1 + 1
= 2
. Since 2
has only one digit, return 2
.
也可数学直接求解 https://en.wikipedia.org/wiki/Digital_root
1 public class Solution { 2 /** 3 * @param num a non-negative integer 4 * @return one digit 5 */ 6 public int addDigits(int num) { 7 // Write your code here 8 while(num>=10){ 9 int tempSum = 0; 10 int temp = num; 11 while(temp>=10){ 12 tempSum += temp%10; 13 temp/=10; 14 } 15 num = temp+tempSum; 16 } 17 return num; 18 } 19 }