我正在学习Ruby并试图解决以下挑战:
编写一个接受整数
num
的方法,并返回零和num之间所有整数的总和,直至并包括num
。
我想出了:
def sum_nums(num)
sum = ""
num = num.to_i
if num > 0
while num > 0
sum = sum + num
num = num - 1
end
end
if num == 0
sum = 0
end
if num < 0
while x < 0
sum = sum + num
num = num + 1
end
end
return sum
end
在第6行收到Fixnum字符串错误,无法自行解决问题。我尝试将num转换为整数,即使这对我没有意义,因为我已经编写了类似的方法,不需要to_i
。但完全失去了我所遗漏的显而易见的事情。
答案 0 :(得分:1)
您的错误是尝试添加数字为""
的字符串num
的结果。
与尝试转换类型的JavaScript不同,Ruby不允许您使用数学运算符的不同类型(除非它们是数字,例如float或integer)。
纠正第2行说:sum = 0
。