leetcode(70).258. Add Digits
来源:互联网 发布:幽默淘宝店铺公告范文 编辑:程序博客网 时间:2024/05/21 10:38
题意:
给一个非负整数,将它的各个位的数字相加,重复这个过程,直到得到一个个位数,返回这个数。
初步分析:看到题目说可以用O(1)时间的时候,就知道这个数学题一定是有它的数学规律的。但我挺不喜欢把编程题做成数学题的,都做了十几年了。
我们很明显的发现,这是一个循环的过程,所以可以用循环和递归来做,
来看看要点。
核心的处理是:
while(num > 0) //各位相加,得到一个新的数{ newnumber += nownumber % 10; nownumber /= 10;}我们要重复的进行这个核心的处理:
1 首先给出结束条件: nownumber < 10 (即得到个位数) 。
2给出每次要向下传递的(信息)数据: newnumber(作为下一次的nownumber)
3其实还有一个,就是新的数每次要更新初始值为0
public class Solution { public int addDigits(int num) { //这个参数对于递归是充分的,所以可以直接对这个函数递归 if (num < 10) //1 先给出结束条件 return num; int newnum = 0; //2 更新操作数据 while (num > 0){ //3 进行操作 newnum += (num % 10); num /= 10; } return addDigits(newnum); //4 进入递归(并传递数据) }}
0 0
- leetcode(70).258. Add Digits
- 【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
- js的序列化
- Ubuntu 14.04配置dummynet指南
- 145. Binary Tree Postorder Traversal
- 欢迎使用CSDN-markdown编辑器
- |洛谷|数学|P2415 集合求和
- leetcode(70).258. Add Digits
- Solr的SolrCloud与Master-slave主从模式对比
- Java Eclipse Tomcat MySql开发javaweb项目环境搭建
- hdu1007Quoit Design
- padding 内边距
- 归并排序
- Android 缓存机制(一)
- 为什么使用泛型
- |洛谷|搜索|P2089 烤鸡