gpt4 book ai didi

ruby - 用 Ruby 编写这个的更好方法?

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

我是 Ruby 新手。经过大量的重构,我归结为这个。有没有更好的写法?

 51   def tri_num?(n)
52 i = 1
53 while i < n
54 return i if i * (i + 1) / 2 == n
55 i += 1
56 end
57 raise InvalidTree
58 end

最佳答案

直接解决怎么样?

def tri_num? n

i = (0.5*(-1.0 + Math.sqrt(1.0 + 8.0*n))).to_i

if i*(i+1)/2 == n
return i
else
raise InvalidTree
end

end

虽然我不知道 tri_num? 是不是个好名字。通常以 ? 结尾的函数应返回 truefalse

关于ruby - 用 Ruby 编写这个的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7655051/

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