嵌套循环:要动态?
Nested Loop: to be dynamic?
好的,我实际上是在做这个练习来解决那些嵌套循环问题。我会说这对我来说是最难的。我尽最大努力变得更加动态而不是静态。谁能告诉我如何解决这个问题?
预期输出:
1
1 2
1 2 4
1 2 4 8
1 2 4 8 16
1 2 4 8 16 32
1 2 4 8 16 32 64
1 2 4 8 16 32 64 128
这是我的静态代码:
n = 1
for i in 1..8
for c in 1..n
case i
when 1
print "1"
when 2
print "1 2"
when 3
print "1 2 4"
when 4
print "1 2 4 8"
when 5
print "1 2 4 8 16"
when 6
print "1 2 4 8 16 32"
when 7
print "1 2 4 8 16 32 64"
when 8
print "1 2 4 8 16 32 64 128"
end
print "\n"
end
end
我不是在寻找答案。但我很感激你能指导我。
for x in 0..7
for y in 0..x
op = 2**y
print op, " "
end
puts ""
end
版画
1
1 2
1 2 4
1 2 4 8
1 2 4 8 16
1 2 4 8 16 32
1 2 4 8 16 32 64
1 2 4 8 16 32 64 128
您需要存储每一步的结果并添加新的步骤。
Ruby 对 for 的作用不大,有更好的方法,比如我在这里使用的 .upto
方法。 inject
提供结果变量 out
,您可以在其中添加步骤计算。 " #{2**i} "
是在 space 之后插入为字符串的计算。
(0.upto 8).inject("") do |out, i|
puts out
out << "#{2**i} "
end
给出
1
1 2
1 2 4
1 2 4 8
1 2 4 8 16
1 2 4 8 16 32
1 2 4 8 16 32 64
1 2 4 8 16 32 64 128
好的,我实际上是在做这个练习来解决那些嵌套循环问题。我会说这对我来说是最难的。我尽最大努力变得更加动态而不是静态。谁能告诉我如何解决这个问题?
预期输出:
1
1 2
1 2 4
1 2 4 8
1 2 4 8 16
1 2 4 8 16 32
1 2 4 8 16 32 64
1 2 4 8 16 32 64 128
这是我的静态代码:
n = 1
for i in 1..8
for c in 1..n
case i
when 1
print "1"
when 2
print "1 2"
when 3
print "1 2 4"
when 4
print "1 2 4 8"
when 5
print "1 2 4 8 16"
when 6
print "1 2 4 8 16 32"
when 7
print "1 2 4 8 16 32 64"
when 8
print "1 2 4 8 16 32 64 128"
end
print "\n"
end
end
我不是在寻找答案。但我很感激你能指导我。
for x in 0..7
for y in 0..x
op = 2**y
print op, " "
end
puts ""
end
版画
1
1 2
1 2 4
1 2 4 8
1 2 4 8 16
1 2 4 8 16 32
1 2 4 8 16 32 64
1 2 4 8 16 32 64 128
您需要存储每一步的结果并添加新的步骤。
Ruby 对 for 的作用不大,有更好的方法,比如我在这里使用的 .upto
方法。 inject
提供结果变量 out
,您可以在其中添加步骤计算。 " #{2**i} "
是在 space 之后插入为字符串的计算。
(0.upto 8).inject("") do |out, i|
puts out
out << "#{2**i} "
end
给出
1
1 2
1 2 4
1 2 4 8
1 2 4 8 16
1 2 4 8 16 32
1 2 4 8 16 32 64
1 2 4 8 16 32 64 128