我有一个函数来返回传入的值的阶乘,然后尝试获取该结果中的每个数字并找到所有数字的总和。在数字变得太大和不精确之前,此方法效果很好。
目前,我的回报率为100的87 !!
是否有一种方法可以仅使用Playgrounds来实现正确的总和,即不能导入BigInt框架?
import Foundation
var result : Double = 0
var sum = 0
func fact(value : Double) -> Double {
if value == 1 {
return 1
} else {
result = fact(value: value - 1) * value
return result
}
}
fact(value: 100)
var digits = Array(String(result)).map{Int(strtoul((String($0)),nil,16))}
for digit in digits {
sum = sum + digit
}
print("The sum is: \(sum)")