Привет, ребята, поэтому у меня есть этот код, который мне нужен для проекта в университете. Код, который у меня есть, рекурсивный, и у меня много времени на загрузку. Я попытался преобразовать его в итеративный, но я могу Кажется, это не так, потому что результат отличается. Не могли бы вы помочь мне его преобразовать? Спасибо.Рекурсивный код на C++ для итеративного
void getBrewCount(int n, int i, int j){
if(i ==n && j == n){ //reach the (n,n) point
count++;
}else if(i > n || j > n){//wrong way
return;
}else {
if(i==8 && j==5){
j++;
}
if(i==11 && j==5){
j+=2;
}
if(i==15 && j>=14){
i+=2;
}
if(i==21 && j>=22){
i++;
}
getBrewCount(n, i +1, j);
getBrewCount(n, i , j +1);
}
Вы можете использовать 'std :: stack' и небольшую структуру, содержащую 3 значения параметров. –
@Alexandru Madalin Для начала вы могли бы сказать, что делает функция? –
Когда вы говорите, требуется много времени, какой номер вы используете при вызове функции и что будет результатом в этом случае? Идея была бы полезной, как если бы n находилось между 0 и 25, мы могли бы не дать такой же ответ, как если бы это было от 1 до 10 миллионов, например. – Phil1970