java - 各位相加 O(1)

xiaoxiao2021-02-28  96

给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数。

您在真实的面试中是否遇到过这个题?  Yes 样例

给出 num = 38。

相加的过程如下:3 + 8 = 11,1 + 1 = 2。因为 2 只剩下一个数字,所以返回 2。

挑战 

你可以不用任何的循环或者递归算法,在 O(1) 的时间内解决这个问题么?

public class Solution { /** * @param num a non-negative integer * @return one digit */ public int addDigits(int num) { // Write your code here return num == 0?0:(num%9 == 0?9:(num%9)); } }

转载请注明原文地址: https://www.6miu.com/read-62942.html

最新回复(0)