Как вернуться в начало цикла?

114
30 августа 2021, 10:40

у меня есть код, меня интересует именно вот этот кусок:

while(true)
    {
        if((k - n_d[l1] == 0) || (k - n_d[l1] == -1 ))
        {
             if(l1 == r)
            {
                cout << count;
                break;
            }
            if(l1 != r)
            {
                k = k_old;
                count -= 1;
                n_d[count2] = 1;
                count2 += 1;
                continue;
                //Вот здесь мне нужно вернуться в начало цикла и проделать все заново
            }
        }
         if(k - n_d[l1] > 0)
        {
            k = k - n_d[l1];
            l1 += 1;
        }
    }

Не могу понять правильно я сделал или нет, если нет то подскажите как правильно) Спасибо заранее!

Answer 1

Можете упростить до:

while (l1 != r)
{
    if (k > n_d[l1])
    {
        k = k - n_d[l1];
        l1 += 1;
    }
    else
    {           
        k = k_old;
        count -= 1;
        n_d[count2] = 1;
        count2 += 1;            
    }       
}
cout << count;

Учитывая количество участвующих обьектов, подозреваю, что весь код нуждается пересмотру

READ ALSO
Помогите ускорить код

Помогите ускорить код

есть кодон принимает число и раскладывает на множители

160
Stack overflow в рекурсивной функции

Stack overflow в рекурсивной функции

По ходу выполнения программы возникает исключение "Необработанное исключение по адресу 0x79E917D7 (ucrtbaseddll) в ConsoleApplication7

92
Возникли проблемы при вычислении суммы бесконечного ряда

Возникли проблемы при вычислении суммы бесконечного ряда

Написал код, согласно требованиям (задание приложу в скриншоте)Все вычисляет,ошибок не выдает, однако значение проверки суммы ряда отличается...

117