Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 09.05.2020
Сообщений: 1

Заполнить матрицу из N строк и M столбцов натуральными числами змейкой по диагонали

09.05.2020, 22:05. Показов 11416. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите программу, которая заполняет матрицу из N строк и M столбцов натуральными числами змейкой по диагонали, как показано в примере.

Входные данные
Входная строка содержит числа N и M ( 1 ≤ N , M ≤ 100 ), разделённые пробелом.

Выходные данные
Программа должна вывести матрицу, заполненную заданным способом.

Примеры
входные данные
4 5
выходные данные
1 3 4 10 11
2 5 9 12 17
6 8 13 16 18
7 14 15 19 20
проще, чем
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
def isZeros(matrix):
    for char in matrix:
        if 0 in char:
            return True
    return False
 
def check():
    global DOWNSIDE, UPSIDE, LEFTSIDE, RIGHTSIDE, DOWNDIAG, UPDIAG
    if i == 0:
        DOWNSIDE = False
        UPSIDE = True
    if i == N - 1:
        DOWNSIDE = True
        UPSIDE = False
    if i != N - 1 and i != 0:
        DOWNSIDE = False
        UPSIDE = False 
    if j == 0:
        LEFTSIDE = True
        RIGHTSIDE = False
    if j == M - 1:
        RIGHTSIDE = True
        LEFTSIDE = False
    if j != M - 1 and j != 0:
        LEFTSIDE = False
        RIGHTSIDE = False
 
N, M = map(int, input().split())
 
matrix = [[0] * M for _ in range(N)]
 
i = 0
j = 0
 
UPSIDE = True
DOWNSIDE = False
LEFTSIDE = True
RIGHTSIDE = False
UPDIAG = False
DOWNDIAG = True
 
num = 1
 
while isZeros(matrix):
    if matrix[i][j] == 0:
        matrix[i][j] = num
        num += 1
    if (i < N - 1 and LEFTSIDE and DOWNDIAG) or (i < N - 1 and RIGHTSIDE and UPDIAG):
        i += 1
        if LEFTSIDE:
            DOWNDIAG = False
            UPDIAG = True
        if RIGHTSIDE:
            DOWNDIAG = True
            UPDIAG = False
        check()
        continue
    elif (j < M - 1 and UPSIDE and UPDIAG) or (j < M - 1 and DOWNSIDE and DOWNDIAG):
        j += 1
        if UPSIDE:
            DOWNDIAG = True
            UPDIAG = False
        if DOWNSIDE:
            DOWNDIAG = False
            UPDIAG = True
        check()
        continue
    elif i > 0 and j < M - 1 and UPDIAG:
        i -= 1
        j += 1
        check()
        continue
    elif i < N - 1 and j > 0 and DOWNDIAG:
        i += 1
        j -= 1
        check()
        continue
 
for char in matrix:
    print(*char)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.05.2020, 22:05
Ответы с готовыми решениями:

Заполнить матрицу натуральными числами змейкой по диагонали
Помогите с задачей :( Входные данные Входная строка содержит числа N и M , разделённые пробелом Выходные данные Программа должна...

Заполните матрицу, содержащую N строк и M столбцов, натуральными числами змейкой
заполните матрицу содержащую N строк и M столбцов натуральными числами змейкой a) 1_3_4_9....б)1_6_7_12 ....2_5_8_10.....2_5_8_11 ...

Заполнить матрицу натуральными числами змейкой
помогите пожалуйста нужно составить программу на Delphi 7,Заполнить матрицу натуральными числами l..N*N, где N - размер матрицы. В...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.05.2020, 22:05
Помогаю со студенческими работами здесь

Заполнить матрицу натуральными числами змейкой
Напишите программу, которая заполняет матрицу из N строк и M столбцов натуральными числами змейкой, как показано в примере. Входные...

Заполнение матрицы из N строк и M столбцов натуральными числами змейкой
Напишите программу, которая заполняет матрицу из N строк и M столбцов натуральными числами змейкой, как показано в примере. Входные...

Заполнить массив из 10 строк и 10 столбцов случайными двузначными натуральными числами
Заполнить массив из 10 строк и 10 столбцов случайными двузначными натуральными числами. Вывести его на экран. Уровень А : считаем...

Прямоугольную матрицу A, состоящую из двух столбцов и N (вводится с клавиатуры) строк заполнить натуральными случайными
Прямоугольную матрицу A, состоящую из двух столбцов и N (вводится с клавиатуры) строк заполнить натуральными случайными двухзначными...

Заполните матрицу натуральными числами по спирали и змейкой
Заполните матрицу, содержащую N строк и M столбцов, натуральными числами по спирали и змейкой, то есть типо этого: 1 2 3 4 5 6...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru