Leetcode - Add Digits
来源:互联网 发布:修复sql注入漏洞 编辑:程序博客网 时间:2024/05/22 10:48
Question
Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.
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?
Hint
- naive implementation of the above process is trivial. Could you come up with other methods?
- hat are all the possible results?
- ow do they occur, periodically or randomly?
- ou may find this Wikipedia article useful.
Java Code
/** * * 同余定理公式: * (a + b)%n = (a%n + b)%n = (a + b%n)%n = (a%n + b%n)%n * (a * b)%n = (a%n * b)%n = (a * b%n)%n = (a%n * b%n)%n * *///版本一:利用理论计算public int addDigits(int num) { if(num == 0) return 0; return (num %= 9) == 0 ? 9 : num;}//版本二:对num依次对10取余取整,得到各个数位,计算的和重新赋值给num,直到num为个位数public int addDigits2(int num) { int sum = num; while(num > 9) { sum = num % 10; while((num /= 10) > 0) sum += num % 10; num = sum; } return sum;}
0 0
- [leetcode][math] Add Digits
- [leetcode] Add Digits
- 【leetcode】Add Digits【java】
- Leetcode: Add Digits
- LeetCode Add Digits
- [LeetCode] Add Digits
- leetcode 258: Add Digits
- LeetCode题解:Add Digits
- leetcode: Add Digits
- 258Add Digits - LeetCode
- leetCode #258 Add Digits
- [LeetCode 258] Add Digits
- LeetCode: Add Digits
- LeetCode:Add Digits
- leetcode--add digits
- leetcode Add Digits
- leetcode--Add Digits
- leetcode Add Digits
- cookie path
- iOS 同一个View识别单击和双击手势
- GCD使用经验与技巧浅谈
- KEIL MDK 查看代码量、RAM使用情况--RO-data、RW-data、ZI-data的解释
- 【java设计模式】之 模板方法(Template Method)模式
- Leetcode - Add Digits
- 小白笔记-------------简单的登陆界面
- ApachePOI组件操作Excel,制作报表(四)
- Oracle查看锁表
- springmvc 使用fastjson 处理 json 数据时中文乱码
- 学生成绩名次表
- js代码测试工具
- 安卓面试题
- 3. Longest Substring Without Repeating Characters