我在 Rust 中有以下代码:fn main() { let mut sum = 0is; for i in (0is..100000000is) { sum = sum + i; } println! ("{}", sum);}结果,我有 4999999950000000但是,当我尝试使用 Golang 和 Ruby 检查此代码时 - 我看到了另一个结果golang版本:package mainimport "fmt"func main() { var sum = 0 for i := 1; i < 99999999; i++ { sum += i } fmt.Println(sum)}红宝石版本:@sum = 0(1...99999999).each do |i| @sum += iendputs @sumRuby 和 Golang 的结果都是 4999999850000001PS:是的,我知道 100000000 和 99999999 之间的区别 - 这是因为在0is..100000000is中包含了 Rust 的正确部分
1 回答
繁花如伊
TA贡献2012条经验 获得超12个赞
您没有对 Go 和 Ruby 中的最后一个元素 (99999999) 求和:
func main() {
var sum = int64(0)
for i := int64(1); i <= 99999999; i++ {
sum += i
}
fmt.Println(sum)
}
4999999950000000
- 1 回答
- 0 关注
- 161 浏览
添加回答
举报
0/150
提交
取消