题目链接
http://www.lintcode.com/zh-cn/problem/add-digits/
题目大意
给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数。
样例
给出 num = 38。
相加的过程如下:3 + 8 = 11,1 + 1 = 2。因为 2 只剩下一个数字,所以返回 2。
算法思想
递归判断这个数字被拆分后求和,和是不是小于10,小于10的话就结束递归
代码实现
public class Solution {
/*
* @param num: a non-negative integer
* @return: one digit
*/
public int addDigits(int num) {
if (num < 10)
return num;
else
{
int result = 0;
while (num / 10 != 0)
{
result += num % 10;
num = num / 10;
}
result += num % 10;
return addDigits(result);
}
}
}