【Python3】【力扣题】258. 各位相加

【力扣题】题目描述:

【Python3】代码:

1、解题思路:将整数转为字符串,遍历字符串中的数字,求和。

知识点:str(...):转为字符串。为了遍历每个数字。

               int(...):转为整数。为了数字求和。

               sum(...):求和。

class Solution:
    def addDigits(self, num: int) -> int:
        while num >= 10:
            num = sum(int(x) for x in str(num))
        return num

2、解题思路:从右到左依次获取低位的数字,求和。

class Solution:
    def addDigits(self, num: int) -> int:
        while num >= 10:            # ① 若不是一位数即>=10,各位数相加,若相加后的值仍不是一位数,继续将值的各位数相加
            res = 0
            while num:
                res += num % 10     # 除法取余数,获取低位数字,求和
                num //= 10          # 除法取整数
            num = res               # ① 
        return num

3、解题思路:数学。

同余原理:

一个正整数m,两个整数a和b,若(a-b)能被m整除(即(a-b)/m是整数),则a和b对模m同余,记作a≡b(mod m)。

简单理解:两个整数除以同一个正整数,余数相同,则两整数同余。

例如:整数11和1,模10。11%10=1,1%10=1,则11和1同余。或者 (11-1)/10=1(整数),则11和1同余。

数根:又称数字根,每个正整数都有一个数根。

正整数,各位数相加,若值大于10,再各位数相加,最终得到一位数,即数根。

注解:n%10 结果为0-9,但10的整数倍的数根不符合。例如:10%10=0,但10的数根为1,不符合。

           n%9+1 结果为1-9,但9的整数倍的数根不符合。例如:9%9+1=1,但9的数根为9,不符合。 

          (n-1)%9+1 结果为1-9,符合,但仅限于大于0的整数。若为0,(0-1)%9+1=9,但0的数根为0。因此,n=0,结果为0;n>0,结果(n-1)%9+1。

class Solution:
    def addDigits(self, num: int) -> int:
        return (num - 1) % 9 + 1 if num else 0
        # 或者
        if num == 0: return 0
        if num % 9 == 0: return 9
        return num % 9

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/127357.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

git使用笔记

0.记录使用经验 1.提交和push代码 git add .添加修改 git commit -m "提交日志" git push origin branch_name推送分支名称代码到远程服务器对应分支 1.1日常操作 git status查看仓库状态 git branch查看分支 git branch -a查看所有分支【包含远程】 git checkou…

第三十章 FPN算法及其变种(车道线感知)

目标检测算法:FPN 论文基本信息 标题:Feature Pyramid Networks for Object Detection链接:https://arxiv.org/abs/1612.03144代码:https://paperswithcode.com/paper/feature-pyramid-networks-for-object-detection 已有方法…

汇编-DUP操作符

DUP操作符使用整数表达式作为计数器, 为多个数据项分配存储空间。 在为字符串或数组分配存储空间时,这个操作符尤其有用,并且可以使用初始化或非初始化数据: .data BYTE 20 DUP(0) ;20个字节,都等于0 BYTE 20 …

深度系统v15.4正式发布,惊艳眼球

导读深度操作系统是一个致力于为全球用户提供美观易用、安全可靠的Linux发行版。深度桌面操作系统V15.4专业版使用全新设计的控制中心和重构桌面,采用模糊透明整体风格,全新的热区交互及窗口管理器动效,精挑细选的桌面壁纸;采用全…

springboot+vue健美操评分系统的设计与实现【内含源码+文档+部署教程】

博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ 🍅由于篇幅限制,想要获取完整文章或者源码,或者代做&am…

基于站点、模式、遥感多源降水数据融合实践技术应用

降水在水循环中发挥着重要作用,塑造了生态景观和生态系统。目前,有四种主要方式获取降水数据:1)雨量计观测,2)地基雷达遥感,3)卫星遥感,4)模式模拟。基于雨量…

YOLOv5检测界面-PyQt5实现

1.将detect.py运用到界面 要将 YOLOv5 的检测结果与 PyQt 界面结合,你需要进行一些额外的步骤。以下是一个简单的示例代码,展示如何使用 YOLOv5 进行目标检测并在 PyQt 界面中显示结果。 首先,确保你已经安装了必要的库: pip …

【11】使用透视投影建立一个3D空间的测试

核心操作: 1.proj view model 这三个矩阵 glm::mat4 mvp m_Proj * m_View * model; m_Shader->Bind(); m_Shader->SetUniformMat4f("u_MVP", mvp);着色器里面就: proj:投影矩阵,可以选择正交投影,或者透视投影…

【无标题】【教3妹学编程-算法题】2918. 数组的最小相等和

3妹:呜呜,烦死了, 脸上长了一个痘 2哥 : 不要在意这些细节嘛,不用管它,过两天自然不就好了。 3妹:切,你不懂,影响这两天的心情哇。 2哥 : 我看你是不急着找工作了啊, 工作…

VScode 右键没有转到定义等的菜单

问题: 右键点击该函数出现的结果只能是这样的: 解决: 通过修改 settings.json 文件,以解决问题: 这是原来有问题的配置: {"python.autoComplete.extraPaths": ["/home/robot/1-temp_mak…

uniapp+vue3+ts+vite+echarts开发图表类小程序,将echarts导入项目使用的详细步骤,耗时一天终于弄好了

想在uniapp和vue3环境中使用echarts是一件相当前卫的事情,官方适配的还不是很好,echarts的使用插件写的是有些不太清晰的,这里我花费了一天的时间,终于将这个使用步骤搞清楚了,并且建了一个仓库,大家可以直…

如何在后台执行 SwiftData 操作

文章目录 前言Core Data 私有队列上下文SwiftData 并发支持使用 ModelActor合并上下文更改的问题通过标识符访问模型总结 前言 SwiftData 是一个用于处理数据操作的框架,特别是在 Swift 语言中进行并发操作。本文介绍了如何在后台执行 SwiftData 操作以及与 Core D…

频谱分析仪 如何选择 TFN RMT系列给您答案

TFN RMT手持式频谱分析仪是TFN新推出的一款高性能、全功能版测试仪,集高性能信号分析模块、多制式解析算法软件于一体的手持式测试仪表,满足军工、高校科研、通信运营商、电力、铁路等对移动通信的测试、无线排查干扰等应用而全新推出的平台,…

Linux系统编程——文件的写入及读取

写入(write) 使用write函数需要包含以下头文件&#xff1a; #include <unistd.h> write的函数定义格式 ssize_t write(int fd, const void *buf, size_t count); 附加&#xff1a;一般将数据写入文件中后需关闭文件&#xff0c;这里需要调用关闭(close)函数&#xf…

高级运维学习(十五)Zabbix监控(二)

一 Zabbix 报警机制 1 基本概念 自定义的监控项默认不会自动报警首页也不会提示错误需要配置触发器与报警动作才可以自动报警 2 概念介绍 &#xff08;1&#xff09;触发器 (trigger) 表达式&#xff0c;如内存不足300M&#xff0c;用户超过30个等 当触发条件发生后&a…

[unity]多脚本情况下update函数的执行顺序

序 有的时候&#xff0c;执行某些脚本时会有先后顺序的要求。unity是按什么顺序来执行脚本的&#xff1f;如何设置&#xff1f; 默认的执行顺序 官方文档里面有个很长的图&#xff1a; Unity - Manual: Order of execution for event functions (unity3d.com) 根据文档&…

传输层中的TCP和UPD协议

一)应用层协议简介:根据需求明确要传输的信息&#xff0c;明确要传输的数据格式&#xff1b; 应用层协议:这个协议&#xff0c;实际上是和程序员打交道最多的协议了 1)其它四层都是操作系统&#xff0c;驱动&#xff0c;硬件实现好了的&#xff0c;咱们是不需要管 2)应用层:当我…

YOLOv8-Seg改进: 分割小目标系列篇 | SPD-Conv,提升分割小目标和弱小分割图精度

🚀🚀🚀本文改进:SPD-Conv由一个空间到深度(SPD)层和一个无卷积步长(Conv)层组成,可以应用于大多数CNN体系结构,特别是在处理低分辨率图像和分割小目标等更困难的任务时。 🚀🚀🚀SPD-Conv 分割小目标检测首选,暴力涨点 🚀🚀🚀YOLOv8-seg创新专栏:http:…

【修车案例】一波形一案例(9)

故障车型&#xff1a;捷豹X-Type 故障现象&#xff1a;发动机故障指示灯点亮&#xff0c;加速时动力不足&#xff0c;扫描工具显示EGR阀和涡轮增压器增压控制位置传感器电路故障 示波器诊断&#xff1a;检测增压控制位置传感器电路的完整性 A通道 - 增压控制执行电机电源电压B通…

docker更改存储目录原因及方案

为什么一定要将docker的存储目录挂载到其他目录 docker在安装时默认存储目录在/var/lib/docker&#xff0c;而该目录是在系统盘下的。docker安装后&#xff0c;会使用各种各样的镜像&#xff0c;动辄几个G&#xff0c;那么如此多的镜像文件&#xff0c;装着装着系统盘就撑爆了…