有誰知道如何獲得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