使用ruby

时间:2016-11-07 22:43:23

标签: ruby

有没有办法让这个脚本只运行一次?用户输入将是puts语句打印出来的内容?

  print "Which harmonic sums do you wish to calculate? "
          sum = gets.to_i

  def harmonic_sum(n)
        (1..n).inject(Fraction.new(0,1)) {|r, i| r + Fraction.new(1,i) }
  end    

  puts  harmonic_sum(1)
  puts  harmonic_sum(2)
  puts  harmonic_sum(3)
  puts  harmonic_sum(4)
  puts  harmonic_sum(5)

我是否必须创建一个局部变量才能将其作为循环运行,如果是这样,我将运行什么样的循环。我看到其他帖子说while循环或for循环可行,但哪一个更好?

1 个答案:

答案 0 :(得分:2)

  1.upto(sum) do |n|
    harmonic_sum(n)
  end