на вход одно целое число на выход подаёт треугольник в виде символов
Решаю задачу.
Входные данные: число.
Выходные данные: программа строит равнобедренный треугольник из символов. Длина равных сторон у треугольника равна введенному ранее числу.
Вопрос: Не могу разобраться. Верх строится корректно, а нижняя часть нет На вход 3 вывод
X
XX
X X
XX
X
n = 5
# n = int(input())
for i in range(n):
if i == 0:
print('X')
elif i== 1:
print("XX")
else:
print('X' + ' ' * (i-1) + 'X')
for i in range(n//2, n-1):
if i == n-1:
print('X')
elif i == n-2:
print('XX')
else:
print('X' + ' ' * (i-1) + 'X')
i *= 1
print('X')
Ответы (1 шт):
Автор решения: Алексей Р
→ Ссылка
В вашем коде нужно второй цикл сделать зеркальным первому, с шагом -1 for i in range(n - 2, -1, -1):, а условия внутри те же самые, что и в первом цикле
n = 5
# n = int(input())
for i in range(n):
if i == 0:
print('X')
elif i == 1:
print("XX")
else:
print('X' + ' ' * (i - 1) + 'X')
for i in range(n - 2, -1, -1):
if i == 0:
print('X')
elif i == 1:
print('XX')
else:
print('X' + ' ' * (i - 1) + 'X')
X
XX
X X
X X
X X
X X
X X
XX
X
Код можно немного сократить:
n = 5
for i in list(range(n)) + list(range(n - 2, -1, -1)):
print(f'X{" " * (i - 1)}X' if i else 'X')