如何摆脱嵌套循环使算术系列更有效?

时间:2017-02-15 06:36:34

标签: ruby

我对编程很陌生,请耐心等待。

所以这就是我现在的代码,我想知道如何在不改变程序功能的情况下将两个循环组合在一起。

entry = " "

while entry != "q"
   print "enter a number: "
   num = gets.to_i

    for x in 1..num 
      sum = 0
    end

    for y in 1..x
      sum = sum + y
      puts sum
    end

    print "press any key to continue (q to quit): "
    entry = gets.chomp
end

非常感谢任何帮助!

谢谢!

编辑:

我想我应该澄清这个程序的功能;用户输入一个数字,然后计算每个算术系列的值,包括用户输入的数字。

因此,如果输入3,结果应显示如下:

1

3

6

抱歉这个混乱!

1 个答案:

答案 0 :(得分:2)

假设你想计算并将1之间的数字之和加到输入数字,我建议遵循:

while entry != "q"
   print "enter a number: "
   num = gets.to_i
   puts (1..num).sum

   print "press any key to continue (q to quit): "
   entry = gets.chomp
end

对于已编辑的问题解决方案可以是:

while entry != "q"
   print "enter a number: "
   num = gets.to_i
   (1..num).inject(0) do |res, e|
     res += e
     p res
    end

   print "press any key to continue (q to quit): "
   entry = gets.chomp
end