繁体   English   中英

大于Int64的整数

[英]Integers Larger than Int64

我试图获取用户输入的数字并找到所有数字的总和。 我遇到的问题是数字较大,因为它们不会在Int64下注册。 关于我可以用来存储值的结构有什么想法? (我尝试过UInt64,但在底片方面效果不佳,但是,无论如何,我宁愿使用比UInt64大的东西。我在实现UInt128时遇到了困难, 请问是否存在容量比u_long /大的数字类型? Swift中的UInt64?

import Foundation

func getInteger() -> Int64 {
var value:Int64 = 0

while true {

    //we aren't doing anything with input, so we make it a constant
    let input = readLine()

    //ensure its not nil
    if let unwrappedInput = input {
        if let unwrappedInt = Int64(unwrappedInput) {
            value = unwrappedInt
            break
        }
    }
    else { print("You entered a nil. Try again:") }
}
return value
}
print("Please enter an integer")
// Gets user input
var input = getInteger()
var arr = [Int] ()
var sum = 0
var negative = false
// If input is less than 0, makes it positive
if input < 0 {
input = (input * -1)
negative = true
}
if (input < 10) && (input >= 1) && (negative == true) {
    var remain = (-1)*(input%10)
    arr.append(Int(remain))
    input = (input/10)
}
else {
    var remain = (input%10)
    arr.append(Int(remain))
    input = (input/10)
}
}
// Adds numbers in array to find sum of digits
var i:Int = 0
var size:Int = (arr.count - 1)
while i<=size {
sum = sum + arr[i]
i = (i+1)
}
// Prints sum
print("\(sum)")

您可以使用字符串来执行您描述的操作。 循环遍历每个字符并将其转换为整数并加到总和上。 小心处理错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM