L. Числовой прямоугольник

Ребята в детском саду учатся считать, и чтобы им было интереснее, воспитательница решила оформить список изучаемых чисел особым образом.
Дети справляются весьма быстро, поэтому ей требуется программа способная строить числовые прямоугольники. Напишите программу, которая строит числовой прямоугольник требуемого размера.

Формат ввода

В первой строке записано число N — высота числового прямоугольника.
Во второй строке указано число M — ширина числового прямоугольника.

Формат вывода:

Нужно вывести сформированный числовой прямоугольник требуемого размера.
Чтобы прямоугольник был красивым, каждый его столбец должен быть одинаковой ширины.

Пример

Ввод

2
3

Вывод

1 2 3
4 5 6

Ввод

4
6

Вывод

 1  2  3  4  5  6
 7  8  9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24

Решение

Существует два способа решения этой задачи.

Наивный заключается в том, чтобы построить зависимость числа от его местоположения в квадрате.

Но по сути, это облегченный вариант задачи C. Новогоднее настроение. Облегченный потому, что нам опять надо выводить числа, только в этот раз размер ряда всегда один и тот же.

Ниже представлены два оба варианта решения задачи.

Посмотреть код

Решение

Python
# Наивный метод

height = int(input())
width = int(input())

cell_width = len(str(height * width))

for i in range(1, height + 1):
    for j in range(width * (i - 1) + 1, width * i + 1):
        print(f'{j:>{cell_width}}', end=' ')
        if j == width * i:
            print()

Решение

Python
height = int(input())
width = int(input())

cell_width = len(str(width * height))

number = 1
for _ in range(height):
    for _ in range(width):
        print(f'{number:>{cell_width}}', end=' ')
        number += 1
    print()
Подписаться
Уведомить о
guest
4 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Алим
Алим
23.10.2024 19:46
ch=int(input())
ch2=int(input())
for i in range(1,ch2*ch+1):
    if i%ch2!=0:
        print(i,end=' ')
    else:
        print(i,sep=' ')
Ильгиз
Ильгиз
Ответить на  Алим
11.12.2025 14:25

Спасибо за ваш вариант кода для решения этой задачки. Я мыслил так же, но не мог написать рабочий код), ваш комментарий помог мне разобраться). Но, ваш код будет работать корректно в следующем виде:

ch = int(input())
ch2 = int(input())
cell_width = len(str(ch2 * ch))
for i in range(1, ch2 * ch + 1):
  if i % ch2 !=0:
    print(f'{i:>{cell_width}}', end=' ')
  else:
    print(f'{i:>{cell_width}}')
Ильгиз
Ильгиз
12.12.2025 12:33

В первом варианте решения задачи можно обойтись без if, оставив только print(), но для этого необходимо print() переместить из вложенного цикла for в основной цикл for.

Ильгиз
Ильгиз
15.12.2025 14:21

Оставляю свой вариант решения этой задачки, основанный на информации с подсказки от яндекса. Но я его чуть чуть изменил для логического понимания:

num_row = int(input())
num_column = int(input())
max_num = num_row * num_column
cell_width = 0
while max_num != 0:
    cell_width += 1
    max_num //= 10
for row in range(1, num_row + 1):
    for column in range(1, num_column + 1):
        num = column + (row - 1) * num_column
        print(f'{num:>{cell_width}}', end=' ')
    print()