有谁知道如何获得Swift中数字的所有数字的总和?使用数字845
会导致17
在Swift中查找数字的总数
回答
这里是仅使用简单的整数运算的溶液:
func digitSum(var n : Int) -> Int {
var sum = 0
while n > 0 {
sum += n % 10 // Add least significant digit ...
n /= 10 // ... and remove it from the number.
}
return sum
}
println(digitSum(845)) // 17
更新夫特3/4:
func digitSum(_ n : Int) -> Int {
var n = n
var sum = 0
while n > 0 {
sum += n % 10 // Add least significant digit ...
n /= 10 // ... and remove it from the number.
}
return sum
}
print(digitSum(845)) // 17
另一个实行,只是为了好玩:斯威夫特3
func digitSum(_ n : Int) -> Int {
return sequence(state: n) { (n: inout Int) -> Int? in
defer { n /= 10 }
return n > 0 ? n % 10 : nil
}.reduce(0, +)
}
这与我昨晚从我的字典问题的第二部分需要的东西类似。我已经更进了一步,将其缩小到一位数字,但不接受字符串。当你有一分钟时,你能否看看并提出变体建议?非常感谢。 https://stackoverflow.com/questions/48512102/sum-integers-using-key-values-from-a-characterint-dictionary-to-one-digit – tymac 2018-01-30 00:22:49
为了完整起见
例如,对于那些希望看到或理解数学为基础的方法是谁,这里是移植到一个实数函数为基础的技术迅速。
这是不是在Swift中计算整数数字的最有效方法。我不推荐使用它。我个人会使用@LeoLDbus map/reduce来回答这个问题,因为它非常酷,并且说明了一组强大的Swift特性但很短,或者说@MartinR整数mod/divide答案,由于它的整数运算的极其简单和相对速度。
Cocoa和UIKit拥有必要的数学方法,所以您可能需要导入其中一个包。
func sumDigits(var i : Int) -> Int {
var sum = 0
var nDigits = floor(log10(Double(i))) + 1
for var r = nDigits; r > 0; r-- {
var p = pow(10, r - 1)
var d = floor(Double(i)/p)
sum += Int(d)
i -= Int(d * p)
}
return sum
}
更新:的Xcode 8.3.2•夫特3.1
let myString = "845"
let sum = myString.characters.flatMap{Int(String($0))}.reduce(0, +)
print(sum) // 17
let myInteger = 845
let sumInt = String(myInteger).characters.flatMap{Int(String($0))}.reduce(0, +)
print(sumInt) // 17
不错。非常Swiftesque!这让我看起来阵列,地图,减少和使用它在操场上。我现在明白了。值得学习。有一天你会成为我的榜样,这会为我节省一些时间! – clearlight 2015-04-06 07:18:39
@所有关于该基地谢谢 – 2015-04-06 07:27:02
递归的解决方案!
func digitSum(of number: Int) -> Int
{
if(number < 10)
{
return number
}
else
{
return number % 10 + digitSum(of: (number/10))
}
}
- 1. 在Ruby中查找数组中两个数字的总和
- 2. 在数组中查找计数总和
- 3. 查找数字在两列中出现的总次数
- 4. 查找在flot中选择的总数
- 5. 查找数组中的列总数
- 6. 查找数组中的组合总数?
- 7. 查找子字符串的总次数
- 8. 查找给定数字的总和
- 9. 在Swift中查找字符串中的空格数
- 10. 查找其数字总和为素数的数字
- 11. 查找数组中的3个连续数字的总和
- 12. 在Swift中查找字符串数组的方式
- 13. 使用组中的项目总数和数量在组中查找数字
- 14. 如何查找数字的单独数字的总和?
- 15. 查找数组中某些字符串的总数
- 16. 查找数组中所有数字的排列总和为16
- 17. 如何查找数组中所有数字的总和?
- 18. 查找负数和总数的正数
- 19. 拆分数字串和查找总和
- 20. 在PHP中查找数字的倍数
- 21. 在swift中获取数组的总和
- 22. 在C#中查找数组中每列的总数
- 23. 在NSMutableArray中查找字符串Swift
- 24. Python:查找数组总和
- 25. 在Unix中查找字数和行数
- 26. MongoDB的查询在数据库中找到城市总数
- 27. 在一个范围内查找数组单元格中的数字总和
- 28. 在整数列表中查找2个最大数字的总和
- 29. 查找总和给定数字'n'的'p'数字的排列数
- 30. 查找LinkedList中数字的中位数
除以10,加上余数到运行总数,再以商数重复到零。你有什么尝试? – Amadan 2015-04-06 06:36:53