[LeetCode] Add Digits - 数字各个位数求和
【摘要】 这是一道关于数字各个位数求和的LeetCode题目,希望对您有所帮助。
题目概述:
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?
题目解析:
主要考察整数各个位数求和,当且仅当和小于10时输出。可能会走入整数转换为字符串的误区,直接使用取余(%)个位数相加即可,需要注意:
1.非负整数判断
2.输入0时输出0,输入10时输出1
3.至于O(1)时间复杂度考察数学公式:1 + (num-1) % 9
4.整数转换字符串可以类似思想:循环个位数转换reslut=num%10,num=num/10
我的代码:
推荐代码:
原文地址:https://blog.csdn.net/Eastmount/article/details/48294623
(By:Eastmount 2021-7-31 下午6点半 )
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)