Форум сайта python.su
xam1816А, а я не понял, что ты там решил расширить возможности алгоритма.
я сначала так и сделал, но с другим шагом не через 1, а через 5 к примеру, не выходит
>>> n = 4 # int(input()) >>> m = 5 # int(input()) >>> >>> index = 1 >>> step = 5 >>> for i in range(n): ... row = [] ... for j in range(m): ... row.append(index) ... index += step ... if i % 2 == 1: ... row = row[::-1] ... rowstr = ' '.join('{:>2}'.format(i) for i in row) ... print(rowstr) ... 1 6 11 16 21 46 41 36 31 26 51 56 61 66 71 96 91 86 81 76 >>>
Отредактировано py.user.next (Янв. 19, 2023 08:11:08)
Онлайн
Кстати, ради эксперимента решил в твой умный, всё учитывающий, код подставить шаг -3, а вдруг он сработает типа
>>> row = 6 >>> column = 8 >>> >>> n = 1 >>> step = -3 >>> for i in range(row): ... for j in range(column): ... print(f'{n:>4}', end=' ') ... n += step ... step *= -1 ... n += (column * abs(step)) + step ... print() ... 1 -2 -5 -8 -11 -14 -17 -20 4 7 10 13 16 19 22 25 49 46 43 40 37 34 31 28 52 55 58 61 64 67 70 73 97 94 91 88 85 82 79 76 100 103 106 109 112 115 118 121 >>>
>>> n = 4 # int(input()) >>> m = 5 # int(input()) >>> >>> index = 1 >>> step = -3 >>> for i in range(n): ... row = [] ... for j in range(m): ... row.append(index) ... index += step ... if i % 2 == 1: ... row = row[::-1] ... rowstr = ' '.join('{:>2}'.format(i) for i in row) ... print(rowstr) ... 1 -2 -5 -8 -11 -26 -23 -20 -17 -14 -29 -32 -35 -38 -41 -56 -53 -50 -47 -44 >>>
Отредактировано py.user.next (Янв. 19, 2023 08:09:42)
Онлайн
py.user.nextДа, но условие задачи не предусматривает использование каких либо списков.
Блин, сработало. Всё верно выводит. Хотя я это даже не планировал. Вот это показывает эту особенность, что простой код не только проще и быстрее менять, но и каких-то неучтённостей в нём тоже не остаётся, они не могут там спрятаться в запутанности и уйти из внимания.
Офлайн
m1r42Так оно и разных шагов не предусматривает, отличных от единицы. Это уже отсебятина идёт, но это полезная отсебятина.
Да, но условие задачи не предусматривает использование каких либо списков.
Отредактировано py.user.next (Янв. 19, 2023 09:04:21)
Онлайн
py.user.next
Не было неожиданностью потому, что сложный запутанный код как раз вот к такой фигне и приводит - что-то не учёл когда-то там и он сразу поплыл на каких-то новых входных данных. А исправлять его под эти новые данные надо три часа, если это вообще возможно сделать.
А потом я решил в свой код с добавленным шагом подставить шаг -3 и тоже проверить, а как он себя поведёт
row = 4 column = 5 n = 1 step = -3 k = (0 + step)//abs(step) for i in range(row): for j in range(column): print(f'{n:>4}', end=' ') n += step step = -step n += k*(column * abs(step))+ step print()
1 -2 -5 -8 -11
-26 -23 -20 -17 -14
-29 -32 -35 -38 -41
-56 -53 -50 -47 -44
Офлайн
xam1816На эту тему даже вспомнился бородатый анекдот:
на эту тему есть даже поговорка: Все что сложно - то ложно.
Офлайн