ruby - 为什么 Ruby 中的这些循环不输出相同的答案?

标签 ruby

我目前正在做 Project Euler 问题 1。我不知道为什么这两个循环不一样。

total = 0
for i in 0..1000
  if (i % 3 == 0 || i % 5 == 0)
    total += i
  end
end

total = 0
(0...1000).each do |i|
  total += i if (i % 3 == 0 || i % 5 == 0)
end
puts total

最佳答案

当您在 (0...1000) 范围内使用三个点时,最终值不是范围的一部分 - 它相当于 (0..999)

所以,在第一种情况下1000是循环的一部分,但在第二种情况下它不是循环的一部分。

关于ruby - 为什么 Ruby 中的这些循环不输出相同的答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35391395/

相关文章:

ruby-on-rails - 打破参数并单独保存项目

ruby - 使用 Ruby 脚本发送电子邮件 - 501 5.5.4 无效地址

ruby - haml 中行尾的斜杠 - 我应该清理它吗?

ruby-on-rails - 在路由重定向 block 中访问 Rails 路由助手

ruby-on-rails - 使用回调和 STI 的 ActiveRecord 问题

ruby - 在哈希查找中,符号如何比字符串更快?

ruby - 构建 Ruby 并指定 OpenSSL 目录

ruby-on-rails - rails 4 : Flash message persists for the next page view

ruby-on-rails - 将应用程序推送到 heroku 问题

ruby - Digest::SHA2.hexdigest 从相同的参数生成两个完全不同的值