给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。

2023-11-15

258. 各位相加

难度简单475

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。

示例 1:

输入: num = 38

输出: 2 解释:

各位相加的过程为38 --> 3 + 8 --> 11

11 --> 1 + 1 --> 2

由于 2 是一位数,所以返回 2

示例 1:

输入: num = 0 输出: 0

1234

1+2+3+4=10

1+0=1

前言

这道题的本质是计算自然数num 的数根

数根又称数字根Digital root,是自然数的一种性质,每个自然数都有一个数根。对于给定的自然数,反复将各个位上的数字相加,直到结果为一位数,则该一位数即为原自然数的数根。

计算数根的最直观的方法是模拟计算各位相加的过程,直到剩下的数字是一位数。利用自然数的性质,则能在 O(1) 的时间内计算数根。

方法一:模拟

思路和算法

最直观的方法是模拟各位相加的过程,直到剩下的数字是一位数

计算一个整数的各位相加的做法是,每次计算当前整数除以 10 的余数得到最低位数,将最低位数加到总和中,然后将当前整数除以 10。重复上述操作直到当前整数变成 0,此时的总和即为原整数各位相加的结果

class Solution {
    public int addDigits(int num) {
        while (num >= 10) {
            int sum = 0;
            while (num > 0) {
                sum += num % 10;
                num /= 10;
            }
            num = sum;
        }
        return num;
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。 的相关文章

随机推荐

  • 一小时学会js-b站笔记

    Javascript中代理的代码示例 Proxy 代理 const obj name 吴昊 age 18 const container document getElementById const p1 new Proxy obj get
  • 启动roketMq 错误: 找不到或无法加载主类 Files\Java\jdk1.8.0_291\jre\lib\ext

    安装roketMQ出现报错 检查mq的环境变量配置无误 最后锁定到Java环境变量 测试java javac java version都正常 那就蛋疼了 最后一看jdk是安装在Program Files目录下的 问题就出在这里 卸载JDK
  • 在Linux系统里使用Apache搭建Web网站服务器

    使用Apache搭建Web网站服务器 Apache服务 Apache被研发于1995年 是纯开源软件 用于HTTP协议提供web浏览服务 可在Unix Linux Windows上运行 1 配置静态IP vim etc sysconfig
  • 多线程(同步)

    一 为什么要使用线程同步 1 什么是同步 同步就是协同步调 按预定的先后次序进行运行 如 你用完 其它人才能用 同 字从字面上容易理解为一起 其实不是 同 字应是指协同 协助 互相配合 当有一个线程在对内存进行操作时 其他线程都不可以对这个
  • Java学习笔记9——封装

    封装 什么是封装 封装的原则 private关键字的使用 this关键字 this的内存原理 什么是封装 封装是面向对象的三大特征之一 封装 继承 多态 是面向对象编程语言对客观世界的模拟 客观世界的成员变量都是隐藏在对象内部的 外部无法直
  • python: openpyxl写入文件打开后显示文件损坏

    最近在将字典数据写入excel时 运用了openpyxl 点击运行 代码运行正常 但是跑了一晚上数据 打开文件时 居然显示 部分内容有问题 文件已损坏 经过多次测试 上网搜索无结果后 更改代码中的wb active为wb ws Sheet1
  • ESP32引脚参考

    原文链接 ESP32引脚参考 您应该使用哪个GPIO引脚 360doc个人图书馆 总结的相当全面 ESP32简单易懂的GPIO使用注意事项 首先上图 GPIO建议列表 特别的在硬件上要注意使用外接模块时不能将GPIO12拉高 否则将导致ES
  • 依托 axios 实现全局请求防抖

    更新 该方法已过时 此 API 自 v0 22 0 起已弃用 传送门 新的代替方案是 AbortController 并且 前端取消请求无法真实取消 原因在于请求发送到服务器后服务器或许已经做了处理 但是前端只是关闭了返回通道 可是实际上服
  • wr720n刷成网络打印_OPENWRT for TP-LINK TL-WR720N 4M-8M固件,含NAS、3G、Printer,支持3070和8187网卡 20120906 - V2EX...

    还记得好久以前很多朋友团购的WR720N吗 一直等着OPENWRT出patch好让703N的固件能支持720N的硬件开关 很遗憾到现在还没有 今天看到antclan修改的固件 觉得基本上可以刷了 转贴来自 http www right co
  • 基于javaweb+mysql的情缘图书馆管理系统(java+SSM+Tomcat+Maven+mysql)

    基于SSM的情缘图书馆管理系统 SSM框架 适合java初学者 主要功能包括 图书编目管理 图书编目 编目维护 图书信息管理 图书录入 图书信息 图书借阅管理 借阅图书 借阅信息 归还 续借 读者管理 办证 读者信息 读者类别 证件操作 系
  • top k算法讲解

    在实际工作中 我们时常会有寻找长度为n的数组中 排在前k的元素 对于top k的问题 最暴力的处理方式就是直接对数组进行排序 然后再去截取前k个数字 从而达到自己的目的 这种算法的实现复杂度为O nlogn 其实有O n 的算法或者是O n
  • UML常用图的几种关系的总结

    在UML的类图中 常见的有以下几种关系 泛化 Generalization 实现 Realization 关联 Association 聚合 Aggregation 组合 Composition 依赖 Dependency 1 泛化 Gen
  • OpenCV_基于Laplacian算子的图像边缘增强

    Refer from http blog csdn net icvpr article details 8502949 下面代码实现了基于Laplacian算子的图像边缘增强 算法 边缘增强图像 源图像 边缘图像 cpp view plai
  • RFID酒店布草洗涤管理系统应用

    1 行业背景 布草作为酒店服务商领域的传统产业 一直是围绕着酒店业的发展而逐步发展起来的 无论是星级酒店 还是经济连锁酒店 布草都是不可或缺的重要物料 各式酒店都面临着成千上万件布草的交接 洗涤 熨烫 整理 储藏等工序 如何有效地完成洗涤布
  • 2022电赛E题(不使用K210)软硬件方案

    请各位客观移步小黄鱼搜索DreamChuan用户 拍下链接即可获取全部软硬件方案哦 物美价廉 2022电赛E题声源定位 不使用K210相关软硬件 使用MAX9814麦克风加stm32F103ZET6加28BYJ48步进电机方案 部分代码开源
  • log4j 配置文件详解

    log4j logger stdout debug 灵活设置日志格式 log4j appender stdout layout org apache log4j PatternLayout 文件 log4j appender stdout
  • 阅读-MTCNN

    原始数据 人脸数据集WIDER FACE 该数据集仅提供了大量的人脸边框定位数据 如果使用wider face的 wider face train mat 注解文件需要转换成txt格式的 我这里用h5py写了个 转换脚本 这里我提供一个已经
  • Python实现输入电影名字自动生成豆瓣评论词云图(带GUI界面)小程序

    Python实现输入电影名字自动生成豆瓣评论词云图 带GUI界面 小程序 一 项目背景 电影逐渐成为人们生活的不可或缺的一部分 而了解一部电影的可以通过电影评分与大众推荐度 但以上的方式都太过于片面 了解一部电影的方法是通过已经观看完电影的
  • Windows CE嵌入式导航系统研究(应用程序相关)

    1 1 1 TCPMP多媒体播放器 本系统中采用的多媒体播放器是TCPMP TCPMP播放器播放速度很快且支持多达几十中多媒体格式 TCPMP开源项目 同时支持Windows CE操作系统 而且提供很好的扩展性 例如需要重新编写TCPMP界
  • 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。

    258 各位相加 难度简单475 给定一个非负整数 num 反复将各个位上的数字相加 直到结果为一位数 返回这个结果 示例 1 输入 num 38 输出 2 解释 各位相加的过程为 38 gt 3 8 gt 11 11 gt 1 1 gt