За последние 24 часа нас посетили 108505 программистов и 7679 роботов. Сейчас ищут 1816 программистов ...

Задача парный не парный индекс

Тема в разделе "PHP для новичков", создана пользователем Taktreba, 8 фев 2017.

  1. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    638
    Симпатии:
    380
    Ну да,мой код же не выводит данные значения которые больше нуля,хотя там все значения больше нуля,кроме самого нуля,и там явно не сказано что массив не подразумевает отрицательных чисел.Не вижу смысла продолжать полемику.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.870
    Симпатии:
    955
    Никто не оспаривает работоспособность твоего алгоритма. Тебе сразу сказали что "четность такая-то и больше нуля" говорит об изначальной задаче больше чем "четность такая-то и логически истинное значение". В первом случае программист четко знает, что отбираются числа больше нуля. Во втором случае программисту нужно будет изучить декларацию значений. Продолжай говнокодить. Не вижу смысла продолжать полемику.
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.333
    Симпатии:
    1.753
    забейте, а, решили уже
     
  4. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Если быть до конца честным, то у меня тоже алгоритмически не правильно, наполовину.
    Там так:
    PHP:
    1. if(!($k % 2) and $v > 0)
    2. elseif($k % 2 and $v > 0)
    Правильно так:
    PHP:
    1. if(($k % 2) == 0 and $v > 0)
    2. elseif(($k % 2) != 0 and $v > 0)
     
  5. Artoron

    Artoron Новичок

    С нами с:
    2 май 2019
    Сообщения:
    2
    Симпатии:
    0
    По правде говоря во всех вариантах реализации есть одна и таже ошибка. Мы то работаем с массивами... Кратность определяется в отношении ключей / индексов массива, нумерация которых начинается с нуля. Если это не учесть, 0-й элемент будет рассматриматься как кратный, хотя это не так. Что бы этого избежать, я бы написал примерно следующее:

    PHP:
    1. $arr = [2, 3, 1, 5, 6, 4, 2, 6, 3, 2];
    2. $even = 1;
    3. $odd = '';
    4.  
    5. foreach ($arr as $key => $value) {
    6.     if (($key != 0 && $key % 2 == 0) && ($value > 0)) {
    7.         $even *= $arr[$key];
    8.     } else if (($key == 0 || $key % 2 > 0) && ($value > 0)) {
    9.         $odd .= $arr[$key] . ' ';
    10.     }
    По факту, можно еще больше упороться и сделать continue для элемента с индексом 0. Как не крути, такое условие - произведение только четных индексов, коим 0 не является.
     
    #30 Artoron, 2 май 2019
    Последнее редактирование: 2 май 2019
  6. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    Ноль - вполне себе обычное целое чётное число.