旗杆半金字塔

时间:2017-01-29 06:42:38

标签: ruby

我试图用Ruby中的Flagpole建造半金字塔。我非常接近错过国旗,我不知道如何完成它。感谢您的帮助。

这是我的代码:(我可以建造半金字塔+杆而不是旗帜)

 n = 1      
 while n <= 5   
   puts ("# " * n).rjust(10) + " |"  
   n += 1  
 end

它打印:         Half pyramid, missing flag

这是渴望的结果:

        # |>
      # # |
    # # # |
  # # # # |
# # # # # |

2 个答案:

答案 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
                <|
                 |
       ##        |
      ###        |
     ####        |
    #####        |
   ######        |
  #######        |
 ########        |
#########        #

据我所知,当使用方形字体时,应该像这张图片一样:enter image description here