Если я правильно понимаю упражнение (которое, на мой взгляд, представлено ужасно), вам следует переосмыслить свой алгоритм перед тем, как использовать его.Каждый шаг можно рассматривать как предыдущий шаг плюс кусок, который в данном случае находится наверху, делая все намного проще.Забудьте свой код и сначала решите его с абстрактной точки зрения.СОВЕТ: большая ошибка, которую вы сделали, соответствует разделу приращения вашего второго цикла.
Как только вы это сделали, перекодируйте его.Вы можете просто настроить одну / две строки кода, но, поскольку это учебное упражнение, я бы посоветовал вам использовать рекурсию, которая, кстати, обычно более эффективна.