检查数字是否是带基本算术的整数

时间:2015-11-25 12:20:16

标签: math hopscotch-language

我正在尝试创建一个检查数字是否为整数的函数。我用相同的问题看了所有这些其他线程,唯一的问题是: 我使用Hopscotch

因此我只能访问以下运算符:

imap

有没有办法检查一个数字是否只是一个整数?

3 个答案:

答案 0 :(得分:3)

重复块会将您的数字四舍五入为整数。因此,如果您重复原始数字并增加测试编号,您可以检查它们在最后是否相等。

enter image description here

正如其他人所说,为了实现这个目标,原始数字必须是积极的。要解决此问题,如果原始数字小于0,则乘以-1。

enter image description here

答案 1 :(得分:0)

伪代码:

if value == 0{
    value was zero
}
else if value > 0{
    while value >= 1
       value = value - 1

    if value == 0
        was a positive non-zero integer
    else
        was a positive decimal
}
else {
    while value <= -1
       value = value + 1

    if value == 0
        was a negative non-zero integer
    else
        was a negative decimal
}

答案 2 :(得分:0)

@scottysmalls答案将采取约N步骤,其中N是您的号码。如果N很大,则可能需要很长时间。更快的方法是减去2的幂,最终将采取大约2 * log 2 N步。在伪代码中:

if value < 0 {
    value = -1 * value
}
powerOfTwo = 1
while powerOfTwo < value {
    powerOfTwo = 2 * powerOfTwo
}
while powerOfTwo >= 1 {
    if value > powerOfTwo {
        value = value - powerOfTwo
    }
    powerOfTwo = powerOfTwo / 2
}
if value > 0 {
    value was a decimal
}