Здесь много вопросов о домашних заданиях.
Я бы предположил, что 90% + можно решить, выполнив код в отладчике и наблюдая за состоянием программы/переменной.
Мне никогда не учили использовать отладчик. Я просто напечатал и прочитал руководство GDB и прошел через их примеры. Когда я впервые использовал Visual Studio, я вспомнил, думая: "Ух ты! насколько проще это может быть, нажмите, чтобы установить точку останова, наведите указатель мыши на переменную для значения, нажмите клавишу для шага, немедленное окно, debug.print и т.д.
Во всяком случае, учащиеся "учат" использовать отладчик? Если нет, почему бы и нет? (Возможно, лучший вопрос: почему они не могут научиться самостоятельно использовать отладчик... может быть, им нужно сказать, что есть такой инструмент, который может им помочь...)
Сколько времени требуется, чтобы научиться использовать отладчик?