Ruby和实例化对象

时间:2017-03-24 20:42:27

标签: ruby-on-rails ruby

我有一个名为Fraction的类来计算谐波和。基本上,我希望能够输入一个值,然后程序能够计算到该数字的谐波总和。例如,如果用户输入3,那么我希望输出为“谐波1:1/1,谐波2:3/2,谐波3:11/6”。到目前为止,这就是我所拥有的方法。

print "Enter a value for your harmonic sum: "
x = gets.chomp.to_i

def harmonic_sum(x)
    (1..x).inject(Fraction.new(0)) do |a, i|
    harmonic = Fraction.new(1, i)
    puts "h#{i}: #{harmonic + a}"

    a + harmonic
    end
end

puts harmonic_sum

我不断收到错误,认为我的论点是错误的。任何帮助,将不胜感激!

1 个答案:

答案 0 :(得分:1)

在这里你得到一个输入:

x = gets.chomp.to_i

然后定义需要一个参数的方法:

def harmonic_sum(x)

但是你在这里称之为没有参数:

puts harmonic_sum

相反,请使用puts harmonic_sum(x)