Здравствуйте, Аноним, Вы писали:
А>В файле записаны неповторяющиеся числа.
А>Необходимо за один проход и без использования массивов определить, можно ли их записать в виде арифметической прогрессии.
А>Например
А>2 10 8 6 4
А>можно представить в виде
А>2 4 6 8 10 — арифметическая прогрессия d=2
А>Числа
А>1 3 5 9 11, нельзя — пропущена 7
Проходишь по файлу и одновременно делаешь слудующее:
1. Запоминаешь наименьшее число Min
if (Value < Min) Min = Value;
2. Запоминаешь наибольшее число Max
if (Value > Max) Max = Value;
3. Запоминаешь наименьшую по модулю разность между двумя соседними числами Diff
if (CurDiff < Diff) Diff = CurDiff;
4. Запоминаешь количество чисел в файле. Cnt
Cnt++
Потом
return ( ( ( Max - Min ) / Cnt ) == Diff ) ? true : false;