LeetCode 258. Add Digits
来源:互联网 发布:js class 写法例子 编辑:程序博客网 时间:2024/05/16 06:23
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?
把一个数拆成单个,相加,直到加结果为个位数。
解析在不考虑复杂度的情况下,可以使用模拟法循环。
class Solution {public: int addDigits(int num) { int result =10; if(num/10 == 0) return num; while(result/10 !=0){ //num = result; result = 0; while(num/10 != 0){ result = result + num%10; num /= 10; } result += num; if(result/10 !=0) num = result; } return result; }};在考虑的情况下,找到其规律:(num-1) % 9 + 1,
直接找需要一些数论的知识见:http://my.oschina.net/Tsybius2014/blog/497645
即
public class Solution { public int addDigits(int num) { return (num-1) % 9 + 1; }}
0 0
- 【LeetCode】258.Add Digits
- LeetCode 258. Add Digits
- LeetCode : 258. Add Digits
- leetCode 258. Add Digits
- LeetCode 258. Add Digits
- 258. Add Digits LeetCode
- LeetCode 258. Add Digits
- LeetCode 258. Add Digits
- leetcode 258. Add Digits
- [LeetCode]258. Add Digits
- LeetCode 258. Add Digits
- <LeetCode>258. Add Digits
- leetcode--258. Add Digits
- LeetCode 258. Add Digits
- LeetCode *** 258. Add Digits
- Leetcode 258. Add Digits
- 258.[LeetCode]Add Digits
- 【leetcode】258. Add Digits
- 使用MonoBehaviour创建xml文件
- Android中的动画
- 理解C语言——从小菜到大神的晋级之路(9)——多维数组
- 1023. Have Fun with Numbers (20)
- HTTP协议详解
- LeetCode 258. Add Digits
- oracle之连接运算符和别名使用实例
- 【编程之美/读书笔记】Chapter 1 游戏之乐
- windows下nginx配置
- 学习笔记------数据结构(C语言版)数组的顺序存储
- CNTK从入门到深入研究(3) - Network Builders
- android/linux进程间通信
- android简单实例-----------5种Notification的简单使用
- poj 1155 树形dp+分组背包