2017-01-29 58 views
1

我試圖在Ruby中用旗杆建造半金字塔。我很近,只是錯過了國旗,我不知道如何完成它。感謝您的幫助。與旗杆的半金字塔

這裏是我的代碼:(我可以建立半金字塔+極而不是標誌)

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

它打印: Half pyramid, missing flag

這是慾望的結果:

 # |> 
     # # | 
    # # # | 
    # # # # | 
# # # # # | 
+0

我不明白你的問題,你能告訴我們預期的結果 –

回答

1

一個解決方案是使用rosetta在控制檯中設置脫字符的位置並添加文本(您的旗杆)。 第二種方法是使用某些if來增強現有代碼。我會使用rosetta來獲得更高級的解決方案。

這裏,如果例如:

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

有解決方案嗎? –

+0

@ChantalJustamond:馬里奧兄弟的金字塔是什麼樣的?該答案會輸出與「所需輸出」完全相同的結果。 –

+0

謝謝@KevinWallis這個工作完美。我正在研究一個if/else語句,但它不完全正確。我會看看這個羅塞塔的東西。我還沒有看到。非常感謝你的幫助。 –

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

+0

哇。這是另一種方法。我沒有看到這個內核格式,但我想我應該看看它。 –