Голосование за лучший ответ
Алиса Дубровская
Знаток
(284)
3 года назад
n=int(input())
for i in range(0,n+1):
for j in range(0,n-i):
print(end=" ")
for j in range(0,i):
print("*",end=" ")
print()
if i==n:
for i in range(n-1,0,-1):
for j in range(0,n-i):
print(end=" ")
for j in range(0,i):
print("*",end=" ")
print()
Мэри Аммосова
Ученик
(146)
3 года назад
n = int(input())
for i in range(1, n + 1, 2):
if i == 1:
print(' ' * 3, '*' * i)
elif i == 3:
print(' ' * 2, '*' * i)
else:
print(' ', '*' * i)
for i in range(n-2, 0 ,-2):
if i == 3:
print(' ' * 2, '*' * i)
else:
print(' ' * 3, '*' * i)
я сама решила, получилось =) Наверное можно и по другому
StepikПрофи (505)
3 года назад
У вас увы не получилось ( т. к. при нечётных значениях более 5 появляется сильное искажение ромба
Георгий Топорков
Ученик
(103)
3 года назад
n = int(input('Введите наибольшую сторону ромба '))
k = n // 2
j = 1
while j != n:
print(" " * (k-1), "*" * j, sep = " ")
j += 2
k -= 1
else:
if j == n:
print("*" * n)
j -= 2
while j != 1:
print(" " * k, "*" * j, sep = " ")
j -= 2
k += 1
else:
print(" " * k, "*" * j, sep = " ")
pass
stepby
Ученик
(226)
3 года назад
romb = int(input('Введите максимальную ширину ромба: '))
for i in range(1, romb + 1, 2):
print(' ' * ((romb - i)//2), '*' * i)
for i in range(romb-2, 0 ,-2):
print(' ' * ((romb - i)//2), '*' * i)
простое решение с выравниванием и для любой ширины ромба
Никита Засобин
Ученик
(137)
1 год назад
width = int(input())
s: int = 1
p: int
s2 = 0
for i in range(width):
if s<width:
p = int((width - s) / 2)
print(' ' * p, '*' * s, ' ' * p)
s += 2
s2=s
else:
p = int((width - s2) / 2)
print(' ' * p, '*' * s2, ' ' * p)
s2 -= 2
Подсказка: помните, максимальная ширина ромба всегда состоит из нечётного числа звёздочек
Пример входа:
5
Пример результата:
*
***
*****
***
*