题目:
给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数。给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数。
样例:
给出 num = 38。
相加的过程如下:3 + 8 = 11,1 + 1 = 2。因为 2 只剩下一个数字,所以返回 2。
思路:
- 逐位相加直到小于10
- 通过发现规律:周期是9
参考答案:
class Solution {
public:
/*
* @param num: a non-negative integer
* @return: one digit
*/
int addDigits(int num) {
// write your code here
while(num/10 > 0){
int sum = 0;
while(num > 0){
sum += num%10;
num /= 10;
}
num = sum;
}
return num;
//return (num-1)%9 + 1;
}
};
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。