chrcx Ответов: 1

Как инициализировать этот массив в java?


Выполните приведенный ниже код для создания nums-массива длиной 500 и инициализации его элементов, имеющих значения 0 и 1 попеременно, начиная с nums[0] = 0 (и nums[1] = 1, nums[2] = 0 и т. д)

int[] nums = ________________;
для (int i = 1; i < nums.длина; ______)
nums[i] = _______;


Это не домашнее задание, а просто практический вопрос для теста. Заранее спасибо за помощь!!

Что я уже пробовал:

int[] nums = новый int[500];
для (int i = 1; i < nums.длина; i++)
nums[i] = _____;

1 Ответов

Рейтинг:
0

phil.o

Ты правильно заполнил первые два.
Для последнего из них вот несколько подсказок: нечетные индексы должны иметь значение 1, тогда как четные индексы должны иметь значение 0.
А выполнение побитовой операции и с 1 позволяет выделить самый младший бит:

(an even number) & 1 == 0
(an odd number) & 1 == 1

Вы просто должны применить эту логику к оставшейся части.
Надеюсь, это поможет.


chrcx

Я понимаю логику с нечетными и четными числами, но просто не знаю формулы, в которой ее можно применить, используя только одну строку кода.

phil.o

Какая переменная в коде, который у вас есть до сих пор, должна чередоваться между нечетным и четным состоянием? (это не вопрос с подвохом, У вас действительно есть переменная с таким поведением)

chrcx

я потому что он считает до 500 на 1

phil.o

Именно так. Итак, что же произойдет, если вы выполните побитовое и (&) от i с 1?

CPallini

5.

phil.o

Спасибо, Карло.