258. Add Digits
来源:互联网 发布:nvidia软件 编辑:程序博客网 时间:2024/05/14 18:34
博文地址:http://blog.csdn.net/u014203453/article/details/52523403
题目:Add Digits
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.题目大概意思是给定一个非负整数num,循环地加他的所有位上的数字,直到得到一位数为止。
思路:这其实是一种数字根(digit root),可以用来校验数字是否正确。现假设num为一个5位数的数字,那么可以把它用另一种形式表示,拆分如下:
将其拆为两部分:
观察发现,第①部分就是题目要求的数字之和,第②部分则是剩下的。现在问题是如何去掉第②部分,而只保留第一部分,让结果num看起来就是他的几个数字之和呢?事实上,仔细观察第②部分就会发现,它始终是9的倍数,也就是直接让num对9取余可以抹掉第②部分,当然第一部分也会被取余,我们暂且认为第①部分取余是不变的(实际上也可以看做一种余)。如此就得到了一次迭代,即
运算后,假设
因此,为了匹配正整数的取值范围,计算方法不能直接使用
而应该写作
最后,程序实现如下:
public class Solution { public int addDigits(int num) { return (num - 1) % 9 + 1; }}
1 0
- 258.Add Digits
- 【LeetCode】258.Add Digits
- 258. Add Digits
- LeetCode 258. Add Digits
- 258. Add Digits
- LeetCode : 258. Add Digits
- 258. Add Digits
- 258. Add Digits
- 258. Add Digits
- 258. Add Digits
- 258. Add Digits
- leetCode 258. Add Digits
- LeetCode 258. Add Digits
- 258. Add Digits LeetCode
- 258. Add Digits
- 258. Add Digits
- LeetCode 258. Add Digits
- 258. Add Digits
- iOS 中,web访问URL的时候,有中文
- 艾媒报告 | 2016 年中国 APP 活跃用户排行榜(Top450)
- [iOS]EasyJsWebView 源码分析
- PLSQL - plsqldev1106x64.exe 注册
- 彻底解决Oledb连接Excel数据类型不统一的问题
- 258. Add Digits
- 佐佐吉牧:SEO算法变化与对策
- 让图片自适应屏幕大小
- HBase时间老化的测试
- Linux操作系统 Samba服务器配置与使用
- MySQL模糊搜索优化
- HTTP常见状态码
- Raptor实践参考:求圆周长
- MetaQ 安装