前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >打卡群刷题总结0603——各位相加

打卡群刷题总结0603——各位相加

作者头像
木又AI帮
发布2023-03-07 20:18:08
1240
发布2023-03-07 20:18:08
举报
文章被收录于专栏:木又AI帮木又AI帮

题目:258. 各位相加

链接:https://leetcode-cn.com/problems/add-digits

问题:

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。由于 2 是一位数,所以返回 2。 进阶: 你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?

解题:

1、只要num大于9,则每位数进行相加,将和赋值给num。

2、num为0时,返回0;

num大于0时,结果依次为1、2、3、...、9、1、2、...、9

规律为(num - 1) % 9 + 1

代码:

代码语言:javascript
复制
class Solution(object):
    def addDigits(self, num):
        """
        :type num: int
        :rtype: int
        """
        # return 0 if num == 0 else (num - 1) % 9 + 1
        res = num
        while res >= 10:
            res = sum(map(int, str(res)))
        return res


PS:刷了打卡群的题,再刷另一道题,并且总结,确实耗费很多时间。如果时间不够,以后的更新会总结打卡群的题。

PPS:还是得日更呀,总结一下总是好的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 励志糖 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档