LeetCode 258 Add Digits(数字相加,数字根)
来源:互联网 发布:recyclerview更新数据 编辑:程序博客网 时间:2024/05/20 00:17
翻译
给定一个非负整型数字,重复相加其所有的数字直到最后的结果只有一位数。例如:给定sum = 38,这个过程就像是:3 + 8 = 11,1 + 1 = 2,因为2只有一位数,所以返回它。紧接着:你可以不用循环或递归在O(1)时间内完成它吗?
原文
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?
分析
其实我并不会写,循环和递归都不能用……我还能怎么办呐。
然后看了LeetCode上给的提示,看了维基百科的一篇文章:Digital root。
有了这个的话,就很容易了;具体这个公式的细节,大家自己参看维基吧,因为篇幅过长就不翻译了。
代码
class Solution {public: int floor(int x) { return (x - 1) / 9; } int addDigits(int num) { return num - 9 * floor(num); }};
0 1
- LeetCode 258 Add Digits(数字相加,数字根)
- LeetCode 258 Add Digits 数字相加,数字根
- 关于数字根(LeetCode Add Digits)
- Leetcode#258. Add Digits (数字根)
- LeetCode oj 258. Add Digits(数字根)
- 【LeetCode】 Add Digits 数字相加
- leetcode 258.Add Digits | leetcode 258 -数字相加
- LeetCode OJ 之 Add Digits (数字相加)
- [LeetCode]258. Add Digits(把数各个位上的数字相加)
- [LeetCode-258] Add Digits(非负整数各位相加)
- LeetCode 258. Add Digits(数位相加)
- (LeetCode)Add Digits --- 整数各位相加
- [java] Add Digits 数字相加
- Add Digits数字各个位数相加
- LeetCode(258) Add Digits
- leetcode解题之258# Add Digits Java版 (相加各个位数)
- Add Digits | LeetCode 加数字
- leetcode 258: Add Digits
- PAT-爬动的蠕虫(简单编程题)
- c++ 数据结构 *** 哈夫曼树的应用——压缩软件
- Kernel panic - not syncing: Attempted to kill init!
- NUMA架构的CPU
- C#操作Excel(NPOI)
- LeetCode 258 Add Digits(数字相加,数字根)
- HTML5商业项目训练营
- C#基础精华05(正则表达式,)
- PAT-支票面额 (简单编程题)
- Math.floor()/Math.ceil()/Math.round()
- iOS绘图教程
- where 与 having
- AppDelegate中那几个方法的作用
- iOS alloc 、retain、release函数