LeetCode OJ 之 Add Digits (数字相加)
来源:互联网 发布:标准韩国语第二册淘宝 编辑:程序博客网 时间:2024/05/19 22:24
题目:
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?
思路:
1、常规解法:循环或者递归
2、数字根问题,参考维基百科的证明和结论:https://en.wikipedia.org/wiki/Digital_root#Congruence_formula.
For base b (decimal case b = 10), the digit root of an integer is:
- dr(n) = 0 if n == 0
- dr(n) = (b-1) if n != 0 and n % (b-1) == 0
- dr(n) = n mod (b-1) if n % (b-1) != 0
or
- dr(n) = 1 + (n - 1) % 9
代码1:
class Solution {public: int addDigits(int num) { if(num <= 0) return 0; while(num >= 10) { int tmp = 0; while(num >= 10) { tmp += num % 10; num = num / 10; } tmp += num; num = tmp; } return num; }};
代码2:
class Solution {public: int addDigits(int num) { if(num <= 0) return 0; if(num % 9 != 0) return num % 9; else return 9; }};
代码3:
class Solution {public: int addDigits(int num) { if(num <= 0) return 0; return 1 + (num - 1 ) % 9; }};
0 0
- LeetCode OJ 之 Add Digits (数字相加)
- 【LeetCode】 Add Digits 数字相加
- LeetCode 258 Add Digits(数字相加,数字根)
- leetcode 258.Add Digits | leetcode 258 -数字相加
- LeetCode 258. Add Digits(数位相加)
- (LeetCode)Add Digits --- 整数各位相加
- [java] Add Digits 数字相加
- LeetCode 258 Add Digits 数字相加,数字根
- LeetCode OJ 之 Add Binary (二进制数字相加)
- LeetCode OJ 之 Add Two Numbers (”两数“相加)
- leetcode解题之258# Add Digits Java版 (相加各个位数)
- Add Digits数字各个位数相加
- [LeetCode-258] Add Digits(非负整数各位相加)
- <LeetCode OJ> 258. Add Digits
- 【LeetCode OJ 258】Add Digits
- LeetCode OJ-258. Add Digits
- leetcode之Add Digits
- LeetCode 之 Add Digits
- android判断手机是否连网
- 通过反射访问任意类的私有方法和属性
- [leetcode] 76.Minimum Window Substring
- Qt中设置桌面应用程序图标
- Tez控制输出的文件是否压缩并指定文件名
- LeetCode OJ 之 Add Digits (数字相加)
- MyBatis学习笔记(六)动态sql
- IMPDP 时遇 ORA-31623、ORA-06512 错误解决一例
- 关于安卓 Couldn't load memtrack module (No such file or directory) 的错误
- Oracle删除用户
- Android关闭或打开软键盘
- 数据挖掘系列 (1) 关联规则挖掘基本概念与 Aprior 算法
- 网络安全与病毒防范
- NSTimer的使用技巧