本文主要是介绍leetcode之旅(6)-Add Digits,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.For example:Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, return it.Follow up:
Could you do it without any loop/recursion in O(1) runtime?Show Hint
题目分析:
首先觉得例子很明显,可能的结果是数目固定的(0~9),那么很有可能是由规律的,加上后面的一句,要求在常数范围内做出来,那么很可能有很大的规律,从0~30总结 一下规律
总结得出结论是从1~9循环
我在审题时候,遗漏了非负数,包括0,没有考虑0的特殊情况
代码:
public class Solution {public int addDigits(int num) {if(num == 0){return 0;}else{if(num%9 != 0){return (num%9);}else{return 9;}}}
}
这篇关于leetcode之旅(6)-Add Digits的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!