Решение задач на вложенные циклы

Болк задач

Повторение: Как идею алгоритма превратить в программу?

Общая идея:

  1. Задача на вложенные циклы — это примитивная двойная задача, она имеет чётко выраженную «внутреннюю» подзадачу и множество вариантов входных данных, на каждом из которых эту подзадачу надо решить.

  2. Если внутренняя задача (поиск элемента, вычисление свойств набора данных, преобразование набора и т. п.) решается итеративно, в решении образуются два вложенных цикла:
    • Внешний цикл (по всем наборам данных)
      • Сформируем очередной набор данных
      • Решим подзадачу
        • … внутренний цикл
      • Обработаем решение
  3. Зачастую внешний и внутренний циклы можно отлаживать отдельно:
    • Взять один фиксированный невырожденный набор данных, реализовать на нём решение подзадачи

    • Написать внешний цикл и посмотреть, правильные ли наборы данных он формирует
    • Объединить

{OK} Ввести N Вывести все простые числа в диапазоне от 2 до N

{i} №328: Найти N первых простых чисел

{OK} №363: Дана строка "s0…sn-1". Преобразовать строку, добавив как можно более короткую подстроку "sn…sm-1" так, чтобы строка "s0…sm-1" стала палиндромом: s0=sm-1, s1=sm-2 и т. д.

Если будет время/понимание: разбор полной задачи про второй максимум.

Д/З

Python/PhilosoPython2022/10_NestedLoops (последним исправлял пользователь FrBrGeorge 2022-11-14 19:11:13)