Как не хранить последовательность в данном случае? Язык С++ или С

Всем привет, вот такой вопрос. На языке С или С++ нужно написать программу с рекурсией и без нее, используя рекурсивную и итеративную функции. Как можно не хранить в данном случае последовательность?

Найти номер последнего вхождения минимального значения в последовательность длины n. Последовательность не хранить.


Ответы (1 шт):

Автор решения: Harry

Да просто передавать все нужное через аргументы.

Что-то типа (писалось на коленке, но вроде должно компилироваться)

int getMin(int n, int No = 0, int min_idx = -1, int min_value = 0)
{
    if (No == n) return min_idx;
    int x;
    cin >> x;
    if (min_idx == -1)
    {
        min_idx = 0;
        min_value = x;
    }
    else if (x <= min_value)
    {
        min_idx = No;
        min_value = x;
    }
    return getMin(n,No+1,min_idx,min_value);
}

Вызов - просто getMin(n), нумерация элементов с 0, считывание из cin. Для своих (не описанных вами) требований перепишите сами, это несложно :)

→ Ссылка