[Swift]LeetCode258. 各位相加 | Add Digits
发布时间:2020-12-14 05:11:13 所属栏目:百科 来源:网络整理
导读:Given a non-negative integer? num ,repeatedly add all its digits until the result has only one digit. Example: Input: Output: 2 Explanation: The process is like:,. ? Since has only one digit,return it.383 + 8 = 111 + 1 = 22 Follow up: Coul
Given a non-negative integer? Example: Input: Output: 2 Explanation: The process is like:,. ? Since has only one digit,return it. 383 + 8 = 111 + 1 = 22 Follow up: 给定一个非负整数? 示例: 输入: 输出: 2 解释: 各位相加的过程为:,。 由于? 是一位数,所以返回 2。 383 + 8 = 111 + 1 = 22 进阶: 20ms 1 class Solution { 2 func addDigits(_ num: Int) -> Int { 3 return (num - 1)%9 + 1 4 } 5 } 24ms 1 class Solution { 2 func addDigits(_ num: Int) -> Int { 3 var num = num 4 5 while num >= 10 { 6 var x = 0 7 while num > 0 { 8 x += num % 10 9 num /= 10 10 } 11 num = x 12 } 13 14 return num 15 } 16 } 24ms 1 class Solution { 2 3 func addDigits(_ num: Int) -> Int { 4 guard num > 9 else { return num } 5 6 var digits = [Int]() 7 var number = num 8 9 while true { 10 digits.removeAll() 11 12 while number > 0 { 13 digits.append(number % 10) 14 number /= 10 15 } 16 17 if digits.count > 1 { 18 number = digits.reduce(0,+) 19 } else { 20 number = digits.first ?? 0 21 break 22 } 23 } 24 25 return number 26 } 27 } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |