各位相加
描述
给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数。
样例
给出 num = 38。
相加的过程如下:3 + 8 = 11,1 + 1 = 2。因为 2 只剩下一个数字,所以返回 2。
挑战
你可以不用任何的循环或者递归算法,在 O(1) 的时间内解决这个问题么?
class Solution {
public:
/**
* @param num a non-negative integer
* @return one digit
*/
int addDigits(int num) {
// Write your code here
if(num!=0 && num%9==0) return 9;
return num%9;
}
};
本文介绍了一种高效的算法,用于将非负整数的所有位数字相加直至得到一个一位数。通过实例展示如何快速实现这一过程,并提供了一个不使用循环或递归的O(1)时间复杂度的解决方案。
1713

被折叠的 条评论
为什么被折叠?



