gpt4 book ai didi

ruby - Ruby 中的 Project Euler #6(有什么区别?)

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:44:42 25 4
gpt4 key购买 nike

我使用两种不同的方法解决了 Project Euler 的#6,但第二种方法恰好是巧合。我真的不明白为什么我不必像第一种方法那样返回 new_sum 的平方。有谁知道两者之间的主要区别是什么?

def square_difference(num)
new_sum = 0
sum = 0
while num >= 1
sum += num**2 && new_sum += num
num -= 1
end
return new_sum**2 - sum
end

def square_difference(num)
new_sum = 0
sum = 0
while num >= 1
new_sum += num && sum += num**2
num -= 1
end
return new_sum - sum
end

最佳答案

&&的优先级高于+=。所以这些表达式:

sum += num**2 && new_sum += num

new_sum += num && sum += num**2

没有按预期工作。第一个只是发生提供看似“正确”的结果。

将它们分成不同的行,您会看到不同之处。或者,至少使用 and 而不是 &&and 的优先级低于 +=

关于ruby - Ruby 中的 Project Euler #6(有什么区别?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30882620/

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