LeetCode 258. Add Digits 题解(C++)
来源:互联网 发布:淘宝买日系钢笔的店铺 编辑:程序博客网 时间:2024/05/28 06:06
LeetCode 258. Add Digits 题解(C++)
题目描述
- Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.
示例
- Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, return it.
限制条件
- Could you do it without any loop/recursion in O(1) runtime?
思路
- 这道题使用数根的公式,就可以达到O(1)的时间复杂度。
- 数根的公式如下:
简化后的结果为
有关数根的详细资料可查询https://en.wikipedia.org/wiki/Digital_root
代码
我的代码
class Solution{public: int addDigits(int num) { while (num / 10 != 0) { num = (num / 10) + (num % 10); } return num; }};
使用数根公式的代码
class Solution{public: int addDigits(int num) { return 1 + (num - 1) % 9; }};
0 0
- LeetCode 258. Add Digits 题解(C++)
- Leetcode题解 258. Add Digits
- LeetCode 258. Add Digits 题解
- 【Leetcode题解】258.Add Digits
- LeetCode题解:Add Digits
- LeetCode 题解(182): Add Digits
- LeetCode 258: Add Digits 题解
- [C]LeetCode:Add Digits
- leetcode 258. Add Digits(C语言)11
- LeetCode 258. Add Digits C语言
- [leetcode-258]Add Digits(C)
- 【LeetCode-258】Add Digits(C++)
- 258. Add Digits (C++)
- 【LeetCode】258.Add Digits
- LeetCode 258. Add Digits
- LeetCode : 258. Add Digits
- leetCode 258. Add Digits
- LeetCode 258. Add Digits
- Linux进程与线程的区别
- Android Java.lang.UnsatisfiedLinkError: Couldn't load locSDK3: findLibrary returned null.
- 在Linux运行期间升级Linux系统(Uboot+kernel+Rootfs)
- 小米2017校招面试经历
- 线性表的实现
- LeetCode 258. Add Digits 题解(C++)
- 研究Fast rcnn代码
- BottomSheetDialog 的两个坑
- 基带处理器的开发实践经验
- OpenStack中的API结构地图
- suse如何修改ssh端口为2222?
- Java程序员职业规划
- Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序
- 《Apache Kylin建立cube时因字段存在换行符报错的问题处理》