我试图用Ruby中的Flagpole建造半金字塔。我非常接近错过国旗,我不知道如何完成它。感谢您的帮助。
这是我的代码:(我可以建造半金字塔+杆而不是旗帜)
n = 1
while n <= 5
puts ("# " * n).rjust(10) + " |"
n += 1
end
它打印: Half pyramid, missing flag
这是渴望的结果:
# |>
# # |
# # # |
# # # # |
# # # # # |
答案 0 :(得分:1)
一种解决方案是使用rosetta在控制台中设置插入符的位置并添加文本(您的旗杆)。
第二种方法是使用一些if
来增强现有代码。我会使用rosetta
来获得更高级的解决方案。
这里是if示例:
n = 1
while n <= 5
if (n == 1)
puts ("# " * n).rjust(10) + " |>"
else
puts ("# " * n).rjust(10) + " |"
end
n += 1
end
答案 1 :(得分:0)
Kernel#format
让它更容易一些:
puts format('%18s', 'o')
puts format('%18s', '<|')
puts format('%18s', '|')
8.times do |i|
puts format('%9s%9s',
'#' * (i + 2),
i == 7 ? '#' : '|')
end
输出:
o
<|
|
## |
### |
#### |
##### |
###### |
####### |
######## |
######### #