leetcode 258. 各位相加 js 实现
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。
示例 1:
输入: num = 38
输出: 2
解释: 各位相加的过程为:
38 --> 3 + 8 --> 11
11 --> 1 + 1 --> 2
由于 2 是一位数,所以返回 2。
示例 1:
输入: num = 0
输出: 0
提示:
0 <= num <= 231 - 1
链接:https://leetcode.cn/problems/add-digits
/** * @param {number} num * @return {number} */ // 递归 var addDigits = function(num) { if(num<10){ return num } num = num+""; let l = num.length-1; let res = 0; while(l>=0){ res = res+(num.charAt(l)-0) l-- } return addDigits(res) }; // 迭代 var addDigits = function(num) { // 当 num>10 才需要计算,否则直接返回 num while (num >= 10) { let sum = 0; // 计算方式,每次取数字的最低位加到 sum 上,再将数字除以 10 向下取整(即为排除最低位之后的数) while (num > 0) { sum += num % 10;// 取数字的最低位加到 sum 上 num = Math.floor(num / 10);// 取除最低位之外的数,当只有一位时,则 num=0,退出循环 } // num可能为 1 位数以上, 赋值为最新计算结果,进行迭代计算 num = sum; } return num; }; // 公式实现 var addDigits = function(num) { return (num - 1) % 9 + 1; };
转载请注明出处:https://www.cnblogs.com/beileixinqing/p/16672223.html
分类:
算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南