66 lines
2 KiB
Python
66 lines
2 KiB
Python
''' ****** Задание 18 из 20 Параграф 2.4 *********
|
||
* Праздники приближаются, и коллеги великого математика снова хотят его порадовать.
|
||
На этот раз — с помощью ещё более красивых математических ёлок!
|
||
|
||
Вас снова зовут в качестве главного креативного программиста.
|
||
Нужно сделать так, чтобы каждая строка ёлки была аккуратно выровнена по центру — строго, симметрично, празднично.
|
||
|
||
Формат ввода
|
||
Вводится одно натуральное число — количество чисел в математической ёлке.
|
||
|
||
Формат вывода
|
||
Требуемая новогодня ёлка.
|
||
|
||
Примечание
|
||
Гарантируется, что последняя строка будет самой длинной.
|
||
Не забывайте про существование f-строк.
|
||
|
||
|
||
Пример 1
|
||
Ввод
|
||
|
||
14
|
||
Вывод
|
||
|
||
1
|
||
2 3
|
||
4 5 6
|
||
7 8 9 10
|
||
11 12 13 14
|
||
'''
|
||
|
||
|
||
if __name__ == "__main__":
|
||
max_number = int(input())
|
||
|
||
row = 1
|
||
col = 1
|
||
number = 1
|
||
width = 0
|
||
while number <= max_number:
|
||
row_value = ''
|
||
while col <= row and number <= max_number:
|
||
row_value += str(number) + (' ' if col < row and number < max_number else '')
|
||
col += 1
|
||
number += 1
|
||
if len(row_value) > width:
|
||
width = len(row_value)
|
||
row += 1
|
||
col = 1
|
||
|
||
row = 1
|
||
col = 1
|
||
number = 1
|
||
while number <= max_number:
|
||
row_value = ''
|
||
while col <= row and number <= max_number:
|
||
row_value += str(number) + (' ' if col < row and number < max_number else '')
|
||
col += 1
|
||
number += 1
|
||
print(f'{row_value:^{width}}')
|
||
row += 1
|
||
col = 1
|
||
|
||
|
||
|