为了账号安全,请及时绑定邮箱和手机立即绑定

Rust 数学错误

Rust 数学错误

Go
紫衣仙女 2021-09-10 21:47:10
我在 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


查看完整回答
反对 回复 2021-09-10
  • 1 回答
  • 0 关注
  • 161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信