*
***
*****
********
任何人都可以告诉我我的代码有什么问题
i=1
k=5
j=1
t=1
t=k
i.upto(k) do
j.upto(t) do
print " "
end
t-=1
j.upto(2*i-1) do
print "*"
end
j+=1
print "\n"
i+=1
end
答案 0 :(得分:2)
一个字符值对其他程序员不利。
String
可以使用*
运算符相乘。
puts
函数打印带有折线的字符串。
puts ""
与print "\n"
upto
不太好,请直截了当地使用times
或each
。
a += 1
并不酷,继续修改值应该是最小的。
def pyramid(height)
height.times {|n|
print ' ' * (height - n)
puts '*' * (2 * n + 1)
}
end
pyramid 5
将提供
*
***
*****
*******
*********
答案 1 :(得分:1)
最低限度的修改,使您的代码能够满足您的需求:
i=1
k=5
t=5
i.upto(k) do
t.times do
print ' '
end
(2 * i - 1).times do
print '*'
end
print "\n"
t -= 1
i += 1
end