[leetcode] 258. Add Digits 解题报告
来源:互联网 发布:python urar 编辑:程序博客网 时间:2024/06/14 05:19
题目链接:https://leetcode.com/problems/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.
Follow up:
Could you do it without any loop/recursion in O(1) runtime?
Hint:
- A naive implementation of the above process is trivial. Could you come up with other methods?
- What are all the possible results?
- How do they occur, periodically or randomly?
- You may find this Wikipedia article useful.
思路:这是一道数学可以解的问题,只需要一个公式,value = 1 + (n-1)%9; 也就是说这题只需要一行代码,其原理是在数学中任何可以被9整除的数, 其数字相加同样可以被9整除. 而要求的结果范围同样是[0, 9], 因此问题就转化为除余的问题.
就再写一个转换成字符串处理的吧.
代码如下:
class Solution {public: int addDigits(int num) { string tem = to_string(num); while(tem.size() > 1) { int sum = 0; for(auto val: tem) sum += val-'0'; tem = to_string(sum); } return stoi(tem); }};
0 0
- [leetcode] 258. Add Digits 解题报告
- LeetCode 258.Add Digits 解题报告
- leetcode解题报告258. Add Digits
- [Leetcode] 258. Add Digits 解题报告
- LeetCode-Add Digits-解题报告
- 【LeetCode解题报告】Add Digits
- 【LeetCode】 Add Digits 解题报告
- leetcode解题报告258——Add Digits
- LeetCode --- 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
- 各类总线传输速率
- Linux man 命令后面的数字含义及作用
- 设计模式六大原则(5):迪米特法则
- C#_List<T>升序排序和降序排序
- UVA 10970 (思维,贪心)
- [leetcode] 258. Add Digits 解题报告
- 【重走普及路】【数学问题】火星人
- 基于Cloudera Manager 5和CDH5(版本5.3.3)的Hadoop集群安装
- POJ1011 一种dfs实现
- JAVA基础之原始类型变量
- C/C++中const关键字详解
- http 监测器
- Android蓝牙打印二维码打印外卖单打印
- Git 版本恢复命令reset