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.
public class Solution {
/*
* 通过while循环,每循环一次得到一个位并存入数组
* 循环结束后,把数组里的值加起来得到一个数
* 若这个数为个位,返回这个数
* 若这个数不为个位,再进行递归
*/
public int addDigits(int num) {
int[] array = new int[50];
int i = 0;//标志位
int number = 0;//用于接收
int data = num;//用于变换
int sum = 0;//求和
while(data != 0){
number = data % 10;//得到位数
data = data / 10;//缩小位数
array[i] = number;//存入数组
i++;
}
for(int j = 0; j < array.length; j++){
sum += array[j]; //加起来
}
if(sum > 9)
sum = addDigits(sum);
return sum;
}
}