gpt4 book ai didi

arrays - 从数组中找到一个真正的整数平方根

转载 作者:太空宇宙 更新时间:2023-11-03 17:43:56 24 4
gpt4 key购买 nike

我确信这是一个非常简单的解决方案,对此我很抱歉,但这让我抓狂。

我正在尝试遍历一个数组并找到一个真正的整数平方根,如果没有,则改为对数字进行平方。

我不知道如何执行 Math.sqrt() 并在不将所有结果都设为整数的情况下生成一个整数而不是 float 。谁能帮忙?

def square_or_square_root(arr)
new_arr = []
arr.each { |num|
if (Math.sqrt(num)).is_a? Integer
new_arr << Math.sqrt(num)
else
new_arr << (num * num)
end
}
puts new_arr
end

最佳答案

这里有一些结构问题和一些数学问题。先定义一个识别方 block 的方法:

class Integer
def square?
Math.sqrt(self).to_i ** 2 == self
end
end

然后将其应用于问题。使用 map 避免了 new_arr 困惑,你可以直接转换这个数组:

def square_or_square_root(arr)
arr.map do |num|
if (num.square?)
num
else
num ** 2
end
end
end

然后当你使用它时你会得到这样的结果:

square_or_square_root([ 1, 2, 3, 4, 5, 6, 7, 8 ])
# => [1, 4, 9, 4, 25, 36, 49, 64]

关于arrays - 从数组中找到一个真正的整数平方根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45132523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com