Показать сообщение отдельно
Старый 20.11.2010, 19:31   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Alex меня немного опередил с алгоритмом, но всё же приведу свои соображения:

1. Вводите массив искомых НОМЕРОВ, например, Num[i].
2. Пусть N - количество элементов, обладающих указанным свойством.
3. Начинаете с того, что вычисляете Min=|a1-1|, где a1 - первый введенный элемент, N:=1 и Num[N]:=1.
4. Если последующие разности превышают Min и встретился еще элемент с номером i, у которого значение разности равно Min, то N увеличиваете на 1 и Num[N]:=i и т.д. до конца.
5. Если встретился i-тый элемент ai, у которого значение модуля разности с его номером меньше Min, то Min:=|ai-i|, N:=1, Num[N]:=i и далее п.4.
6. В конце вывести массив Num от i=1 до N.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070