diff --git a/lesson.14.py b/lesson.14.py index 3028063..fc48219 100644 --- a/lesson.14.py +++ b/lesson.14.py @@ -1,19 +1,21 @@ ''' ****** Задание 14 из 20 Параграф 2.4 ********* -* Давайте ещё немного поможем воспитательнице — на этот раз с новым вариантом числового прямоугольника. +* Обычные прямоугольники — это, конечно, хорошо… но дети быстро теряют к ним интерес. +Поэтому воспитательница просит вас придумать что-нибудь поинтереснее. Например — числовую змейку! -На первый взгляд он похож на предыдущий… -Но здесь числа идут по столбцам, а не по строкам. И это меняет всё! +В этой змейке строки чередуются: одна идёт слева направо, следующая — справа налево, потом снова слева направо… и так далее. +Настоящее приключение для тех, кто учит числа! -Напишите программу, которая заполняет прямоугольник числами от 1 до N × M, по столбцам, а не по строкам и форматирует их так, чтобы все столбцы были одинаковой ширины. +Напишите программу, которая строит числовую змейку из чисел от 1 до N × M. Формат ввода -В первой строке записано число N — высота числового прямоугольника. -Во второй строке указано число M — ширина числового прямоугольника. +В первой строке записано число +N — высота числового прямоугольника. +Во второй строке указано число +M — ширина числового прямоугольника. Формат вывода -Нужно вывести сформированный числовой прямоугольник требуемого размера. -Чтобы прямоугольник был красивым, каждый его столбец должен обладать одинаковой шириной. - +Нужно вывести сформированную числовую змейку требуемого размера. +Чтобы прямоугольник был красивым, каждый его столбец следует сделать одинаковой ширины. Пример 1 Ввод @@ -22,8 +24,8 @@ 3 Вывод -1 3 5 -2 4 6 +1 2 3 +6 5 4 ''' @@ -31,12 +33,14 @@ if __name__ == "__main__": n = int(input()) m = int(input()) - max_number = n * m - width = len(str(max_number)) - - for row in range(n): - for col in range(m): - number = col * n + row + 1 - print(f'{number:>{width}}', end=' ') - print() + max_width = len(str(n * m)) + for i in range(n): + row = [] + for j in range(m): + if i % 2 == 0: + number = i * m + j + 1 + else: + number = i * m + m - j + row.append(str(number).rjust(max_width)) + print(' '.join(row))