我正在尝试为 Project Euler 中的问题 6 编写一个 Rubyish 解决方案,因为我有用其他语言编写 C 的倾向。但是,这段代码:
sqrsum, sumsqr = 0, 0
(1..100).each { |x| sqrsum, sumsqr += x, x**2 }
p (sumsqr - (sqrsum ** 2))
引发这些错误:
/Users/Andy/Documents/Programming/Ruby/ProjectEuler/P6.rb:2: syntax error, unexpected tOP_ASGN, expecting '='
(1..100).each { |x| sqrsum, sumsqr += x, x**2 }
^
/Users/Andy/Documents/Programming/Ruby/ProjectEuler/P6.rb:2: syntax error, unexpected tPOW, expecting '='
(1..100).each { |x| sqrsum, sumsqr += x, x**2 }
^
我在这里做错了什么?我只能在该句法结构中赋值吗?
您正在尝试进行多项赋值,但您没有使用赋值运算符 =
。比较 sqrsum, sumsqr = 0, 0
与 sqrsum, sumsqr += x, x**2
。
可能您想编写 sqrsum, sumsqr = sqrsum+x, sumsqr+x**2
。
我是一名优秀的程序员,十分优秀!