Skip to main content

34. Поиск 2

Рассмотрим задачу

info

Известно, что в массиве имеются элементы, равные 55. Определить номер первого из них; условный оператор не использовать. Если таких элементов нет, вывести слово НЕТ

Чтобы решить эту задачу без условного оператора if, необходимо можифицировать цикл for:

public class Main {
public static void main(String[] args) {
int[] arr = new int[]{20, 12, 5, 14, 2, 12, 5, 1, 4, 5, 2};

// положение первого найденного элемента
int pos;
for (pos = 0; pos < arr.length && arr[pos] != 5; pos++) ;

// если цикл был остановлен раньше времени
if (pos<n)
System.out.println(pos);
else
System.out.println(`НЕТ`);
}
}

Переменная-счётчик pos вместо i вынесена за цикл, а в блоке инициализации цикла переменная не создаётся и инициализируется в блоке инициализации

for(int pos = 0;...

Также изменён блок условий, в него добавлена дополнительная проверка arr[pos]!=5. Т.е. условие прерывания цикла было расширено.

На консоль будет выведено:

2
Задача

Определить номер первого из элементов, равных 55; условный оператор не использовать. Если таких элементов нет, вывести слово НЕТ

public class Main {
public static void main(String[] args) {
int[] arr = new int[]{5, -87, -8, 178, 184, -121, 51, 158, 197, -26, 134, 190, 21, 32};

int i;
for (i = 0; i < arr.length && arr[i] != 5; i++) {

}

System.out.println(i);
}
}

Задание

Массив arr уже объявлен, вам нужно написать только команды, обрабатывающие его значения, т.е. только часть тела метода main().

  1. Определить номер первого из элементов, равных 55; условный оператор не использовать. Если таких элементов нет, вывести слово НЕТ
  2. Определить номер последнего из элементов, кратных 1717. условный оператор не использовать. Если таких элементов нет, вывести слово НЕТ
  3. Найти значение последнего элемента, меньшего заданного числа aa. условный оператор не использовать. Если таких элементов нет, вывести слово НЕТ
  4. Определить значение первого из чисел, кратных 2323. условный оператор не использовать. Если таких элементов нет, вывести слово НЕТ
  5. Найти номер последнего элемента, меньшего заданного числа aa и большего среднего арифметического элементов массива. Если таких элементов нет, вывести слово НЕТ
  6. Вывести на экран последовательность элементов массива, расположенных между первым и последним нечётными элементами массива. Если эта последовательность не существует или пуста, вывести НЕТ.
  7. Дано число aa, о котором известно следующее: оно не равно ни одному из элементов массива. Найти два самых близких к aa элемента массива, в интервале, между которым и находится значение aa.

Ссылка на контест