Выбери все заголовки цикла, в которых выделенные элементы проходятся слева направо.
Размер массива равен N.
for k in range(2, N):
for k in range(N - 2):
for k in range(1, N):
for k in range(1, N - 1):
for k in range(N - 1):
for k in range(N - 1, 1, -1):
for k in range(0, N - 1):
Классная задача: определить, какие заголовки циклов обходят элементы массива слева направо (то есть индексы идут в порядке возрастания).
Ключевые моменты:
- В Python range(start, stop) генерирует start, start+1, ..., stop-1 (если step = 1).
- По умолчанию шаг равен 1, так что порядок элементов возрастающий, т.е. слева направо.
- Единственный случай “справа налево” — когда шаг отрицательный.
Рассмотрим каждую строку:
1) for k in range(2, N):
- Пойдем: 2, 3, ..., N-1. Возрастающий порядок.
- Вывод: да, слева направо.
2) for k in range(N - 2):
- Пойдем: 0, 1, ..., N-3. Возрастающий порядок.
- Вывод: да, слева направо.
3) for k in range(1, N):
- Пойдем: 1, 2, ..., N-1. Возрастающий порядок.
- Вывод: да, слева направо.
4) for k in range(1, N - 1):
- Пойдем: 1, 2, ..., N-2. Возрастающий порядок.
- Вывод: да, слева направо.
5) for k in range(N - 1):
- Пойдем: 0, 1, ..., N-2. Возрастающий порядок.
- Вывод: да, слева направо.
6) for k in range(N - 1, 1, -1):
- Пойдем: N-1, N-2, ..., 2. Убывающий порядок (шаг -1).
- Вывод: нет, слева направо не идёт.
7) for k in range(0, N - 1):
- Пойдем: 0, 1, ..., N-2. Возрастающий порядок.
- Вывод: да, слева направо.
Итого: все заголовки, кроме шестого (с отрицательным шагом), проходят элементы слева направо.
Коротко: можно запомнить правило так: все диапазоны с шагом +1 (или по умолчанию) идут слева направо; единственный заголовок с шагом -1 идёт справа налево.