给出一个非负整数 num
,反复的将所有位上的数字相加,直到得到一个一位的整数。
样例
给出 num
= 38。
相加的过程如下:3 + 8 = 11
,1 + 1 = 2
。因为 2
只剩下一个数字,所以返回 2
。
public:
/**
* @param num a non-negative integer
* @return one digit
*/
int addDigits(int num) {
// Write your code here
if (num < 10)
return num;
else
{
int result = 0;
while (num / 10 != 0)
{
result += num % 10;
num = num / 10;
}
result += num % 10;
addDigits(result);
}
}
};
这是一种比较简单的方法,题目还有另一个要求,不使用循环或递归进行计算,正在思考。。。
可以参考http://blog.csdn.net/xy010902100449/article/details/49046199