我正在尝试编写一个算法来解决n(n + 1)中的数学问题Σn= 1到49。我一直收到错误“主要对象的未定义方法'n'
def solver(n)
sum = 0
while n < 49
temp = n(n+1)
n+=1
sum = sum + temp
end
return sum
end
puts solver(1)
答案 0 :(得分:1)
而不是:
temp = n(n+1)
放:
temp = n*(n+1)
答案 1 :(得分:1)
您获得undefined method 'n' for main object
的原因是因为您的代码认为n(n+1)
正在主要对象上调用n()
方法。在ruby中main
指的是顶级对象,它是Object
在任何情况下,问题的解决方案实际上都会乘以n * (n + 1)
,而不是使用参数n
调用方法n + 1
答案 2 :(得分:0)
这是因为缺少*。试试这个解决方案:
def solver(n)
sum = 0
while n < 49
temp = n*(n+1)
n+=1
sum = sum + temp
end
return sum
end
puts solver(1)