有誰知道如何獲得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. 查找在flot中選擇的總數
- 2. 查找子字符串的總次數
- 3. 查找給定數字的總和
- 4. 查找其數字總和爲素數的數字
- 5. 查找數組中的3個連續數字的總和
- 6. 如何查找數字的單獨數字的總和?
- 7. 在Swift中查找字符串數組的方式
- 8. 查找數組中某些字符串的總數
- 9. 如何查找數組中所有數字的總和?
- 10. 拆分數字串和查找總和
- 11. 在PHP中查找數字的倍數
- 12. 查找不同數字組合的數量,使其總數等於總和
- 13. 在swift中獲取數組的總和
- 14. Python:查找數組總和
- 15. 在NSMutableArray中查找字符串Swift
- 16. 在一個範圍內查找數組單元格中的數字總和
- 17. 查找LinkedList中數字的中位數
- 18. 查找Flex中位圖使用的總字節數
- 19. 在100個數字的數組中找到5個最高數字的總和
- 20. 查找的數字
- 21. 在字符串中查找數字
- 22. 在字符串lua中查找數字
- 23. 在字符串中查找數字
- 24. 如何在swift中從sqlite列中總結字符串數組
- 25. 找到一個數字的數字總和(在c)
- 26. 查找數組中的特殊數字
- 27. 查找數組中缺失的數字
- 28. 在DynamoDB中查找平均數和總數?
- 29. 在數據框中查找參數字符串中的數據
- 30. 查找任意數字的第一個和最後一個數字的總和
除以10,加上餘數到運行總數,再以商數重複到零。你有什麼嘗試? – Amadan 2015-04-06 06:36:53