Em Ruby eu faria assim:
def mostrar_piramide(linhas)
for linha in 1..linhas
espacos = linhas - linha
colunas = 2 * linha - 1
puts ' ' * espacos + '#' * colunas
end
end
puts "Digite a quantidade de linhas da pirâmide:"
linhas = gets.chomp.to_i
if linhas >= 1 && <= 8
mostrar_piramide(linhas)
else
puts 'Quantidade de linhas tem que ser entre 1 e 8'
end
Rodando
Digite a quantidade de linhas da pirâmide:
8
#
###
#####
#######
#########
###########
#############
###############
Não querendo ser xaropão, mas ...
- Está no enunciado (entre 1 e 8). O teu exemplo não faz essa checagem e aceita qualquer valor.
- No enunciado diz: uma pirâmide e o exemplo mostra um triângulo retângulo. Aí o teu programa está correto e o enunciado está errado.
Verdade, faltou checar o valor inserido pelo usuario. Feito. 😅