力扣之各位相加(给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。)

2023-11-03

各位相加

  • 题目描述 : 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。
/* 
			示例 : 
				输入: 38
				输出: 2 
				解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。
			 */
			
			var addDigits = function(num) {
				if(num.toString().length === 1) return num;
				num = num + "";
				var res = 0;
				for(var i = 0 ; i <num.length ; i ++){
					res += Number(num[i]);
				}
				//每次将这次各位相加的合返回,重新计算,直到长度为1
				return addDigits(res)
			};
  • 进阶写法 : 不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题
  • 题解 : 假设一个三位数整数n=100a+10b+c,变化后addn=a+b+c;
    两者的差值n-addn=99a+9b,差值可以被9整除,说明每次缩小9的倍数
    那么我们可以对res=num%9,若不为0则返回res,为0则返回9
var addDigits = function(num) {
			    if (num < 10) return num;				
			    return num % 9 || 9
			}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

力扣之各位相加(给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。) 的相关文章

随机推荐

  • Vue3的watchEffect的妙用,与watch的区别

    前言 在Vue3中 引入了Composition API 其中的watchEffect 函数是一个非常强大和灵活的工具 用于处理响应式数据的变化 使得项目更加弹性和灵活 它与watch有所不同 本文将介绍watchEffect 的定义 特点
  • 一行一行写入csv

    有时候数据量很大 如果df to csv会占用很多内存 因此一行一行写入 import csv out f open df save path w newline writer csv writer out f writer writero
  • Sent non-empty 'Sec-WebSocket-Protocol' header but no response was received

    Sent non empty Sec WebSocket Protocol header but no response was received
  • c++访问私有(private)成员变量的常用方法

    类的对象不能直接访问类声明的私有成员变量 否则破坏了信息隐藏的目的 在C 中 为了防止某些数据成员或成员函数从外部被直接访问 可以将它们声明为private 这样编译器会阻止任何来自外部非友元的直接访问 私有成员变量的常用访问方法如下 1
  • mysql的sql性能分析器

    author skate time 2012 02 17 mysql的sql性能分析器 MySQL 的SQL性能分析器主要用途是显示SQL执行的整个过程中各项资源的使用情况 分析器可以更好的展示 出不良SQL的性能问题所在 mysql sq
  • 高德地图点标记及信息窗体的使用

    项目背景 要做一个数据大屏 需要用到地图以及点标记 UI大致是这样 我是结合vue使用的 vue调用高德地图有一个组件是vue amap 基于vue2 0和高德地图的 我是后端开发 vue是才上手 没有使用npm安装 整个实现上可能走了一些
  • 2014年8月26日星期二(DEMO8-9加载COB模型)

    步骤 1读取文件开头第一行 2读取名称 中心位置 X轴 Y轴和Z轴 用来定义局部矩阵 3读取局部坐标到世界坐标的变换矩阵 4 读取World Vertices行 并按照x y z顺序读取顶点列表 5 读取Texture Vertices行
  • 解决getPopupContainer解决ant-design-react select组件下拉框偏移错

    1 select下拉框撑出了滚动条 2 解决getPopupContainer node gt node 代码如下
  • VS中链接错误:error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1800”不匹配值“1900”

    1 出现如下的错误的时候 如果VS在生成的时候 遇到这样的问题 是因为平台不相符造成的 比如你是2013的 然后你用2017打开 这样的话就会导致出现上述问题 解决的方案就是在属性中 如下 找到你最初使用的平台集就可以了
  • 原油早评

    昨日原油冲高回落收类似倒锤子线 四小时K线呈现M头迹象 显示从4月28日至昨日高点近50 的上涨已出现乏力 预计短期将震荡盘整 目前沙特几乎提高了6月份所有等级的油品出口价格 昨日沙特上调了销往欧洲和地中海沿岸的贴水5 8 7 5美元 桶
  • 华人曾与IBM抗衡! 盘点已远去的IT巨头(转)

    PConline资讯 从算盘到计算器 从大型机到个人PC 再到当今火热的移动终端和云计算 人类计算史已经走过了千年之久 现代IT计算领域也经过了百年浮沉 在世界工业领域 IT技术应该是诞生时间最短却对当今人类影响最大的 如果让读者您列数你所
  • 编程语言与脚本语言的理解

    计算机语言和自然语言一样是交流的工具 只是在计算机快速发展的当今社会 计算机语言显得格外的重要 而对于一些从事IT行业的的菜鸟而言 听到的语言特别多 比喻说什么 java c c js c html 等等 一般会产生一定的疑惑 下面就编程语
  • C++设计模式之责任链模式

    好多新学设计模式的同学 对责任链模式一知半解 今天以C 为例 做个简单的分享 责任链模式指使多个对象多有机会处理请求 避免请求发送者和接受者的耦合关系 将这些接受处理的对象连成一条链 并沿着该链处理请求 收到请求后 每个处理者均可对请求进行
  • Chrome浏览器乱码问题

    浏览器乱码问题 最近 发现自己的chrome浏览器直接乱码了 但是一直没时间去处理 最近找到了解决方法 给出一份总结 首先 作为业界公认最好的浏览器 chrome是不会存在乱码这种低级bug的 通过百度提示 我也很憨的去找过一些chrome
  • js逆向-某狗翻译

    声明 本文仅供学习参考 请勿用于其他途径 违者后果自负 前言 目标网站 aHR0cHM6Ly9mYW55aS5zb2dvdS5jb20vdGV4dA 接口 aHR0cHM6Ly9mYW55aS5zb2dvdS5jb20vYXBpL3RyYW
  • 大数据技术——使用IDEA开发Scala程序

    目录 一 使用IDEA开发WordCount程序 3 二 实验目的 3 三 实验要求 3 四 实验环境 3 五 实验步骤 3 4 1 1启动IDEA并创建一个新项目WordCount 3 4 1 2为WordCount项目添加Scala框架
  • “大湾区杯”金融数学建模赛后闲谈

    上个月中 2020年10月 同学推给我的这个比赛 和其他数学建模大赛不同的是 这是一个金融方向的建模比赛 因为是第一届 所以我想获奖的几率应该还蛮大的 就兴致冲冲的找队友参加了 以下是我参加本次比赛的经验 写下来供以后来参赛的同学参考 关于
  • 【华为OD】

    目录 一 题目描述 二 输入描述 三 输出描述 示例一 输入 输出 示例二 输入 输出 四 Java玩法 一 题目描述 在一长方形停车场内 每个车位上方都有对应监控器 当且仅当在当前车位或者前后左右四个方向任意一个车位范围停车时 监控器才需
  • E280-2G4T12S(SX1280)_STM21F1X驱动分享

    根据需求 我们需要实现的功能有 1 工作模式的切换 2 接收数据的存储处理 3 发射数据的准备 4 通信逻辑的设计 SX1280驱动开发的主要步骤如下 初始化 工作模式的切换 测试结果 1 1 初始化 首先参考手册的硬件连接 控制芯片的工作
  • 力扣之各位相加(给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。)

    各位相加 题目描述 给定一个非负整数 num 反复将各个位上的数字相加 直到结果为一位数 示例 输入 38 输出 2 解释 各位相加的过程为 3 8 11 1 1 2 由于 2 是一位数 所以返回 2 var addDigits funct