Как не хранить последовательность в данном случае? Язык С++ или С
Всем привет, вот такой вопрос. На языке С или С++ нужно написать программу с рекурсией и без нее, используя рекурсивную и итеративную функции. Как можно не хранить в данном случае последовательность?
Найти номер последнего вхождения минимального значения в последовательность длины 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. Для своих (не описанных вами) требований перепишите сами, это несложно :)