Другие языки программирования и технологии

Массив в Java Script!!

Здравствуйте. Не получается создать массив в JS.Помогите, пожалуйста, кто разбирается, какой код нужно ввести в текстовый документ для данного задания: создать одномерный массив из 17 элементов. Вычислить произведение четных элементов с нечетными индексами.
Николай, а Вы жестокий человек)
З. ы автор, советую взять вариант Николая (препод оценит, если сможешь объяснить) , а происходит там следующее: за счёт вот этого "var n = 1" и "n += 2" перебираются только нечётные элементы массива. А вот тут if (~a[n] & 1) происходит самое интересное, допустим возьмём число 13, в двоичном представлении оно выглядит так 1101, потом к нему применяется побитовое "отрицание"(знак ~) и оно становится таким 0010, потом между этим числом и числом 0001 выполняется побитовое "И"(знак &) в результате получается 0000, т. е 0 и т. к javascipt динамически типизированный язык 0 приравнивается к false и тело условной конструкции не выполняется (значит число не чётное) . А если взять 12 - 1100 после отрицания оно станет 0011 а после побитового И - 0001, т. е 1 что восприймется как true и условная конструкция соответственно выполнится, т. е чётное от нечётного отличаются одним знаком в конце, у нечётного там 1, у чётного 0.
Если ты сломал мозг об выше написанное, то да простит меня Николай, if (~a[n] & 1) можно заменить на if (a[n] % 2 == 0) % - оператор "остаток от деления" при делении чётного числа на 2 отстаток - 0, нечётного - 1.
Антон Старосельцев
Антон Старосельцев
1 816
Лучший ответ
<script>
    var a = new Array(7,7,7,3,3,5,4,4,4,6,2,2,1,2,2,4,5);
    var mult = 1;
    for (var n = 1; n < a.length; n += 2) if (~a[n] & 1) mult *= a[n];
    alert(mult);
</script>
Евгений Бугрик
Евгений Бугрик
58 616
var q = 1, K[17];
for(int i = 0; i < 17; i++)
K[ i ] = i*3;

for(int i = 0; i < 17; i++)
if(i % 2 != 0 && K[ i ] % 2 == 0) q *= K[ i ];

alert(q);

ps можно сделать так: var K = Array(34, 5, 7, 3, 22, ..N);
Viatcheslav Milagin
Viatcheslav Milagin
4 674