Проверьте, является ли число нечетным или четным - PullRequest
245 голосов
/ 01 ноября 2011

Какой самый простой и простой способ выяснить, является ли число / переменная нечетным или четным в PHP?Это как-то связано с модом?

Я пробовал несколько скриптов, но .. в данный момент Google не предоставляет.

Ответы [ 16 ]

1 голос
/ 13 июля 2014

Я предполагаю, что счетчик уже установлен. в $ i, который увеличивается в конце цикла. Это работает для меня, используя сокращенный запрос.

$row_pos = ($i & 1) ? 'odd' : 'even';

Итак, что же это делает, он запрашивает утверждение, которое мы делаем по существу, $ i нечетно, в зависимости от того, будет ли его истинное или ложное решать, что будет возвращено. Возвращаемое значение заполняет нашу переменную $ row_pos

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

<div class='row-{$row_pos}'> random data <div>

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

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

$i=0;
foreach ($a as $k => $v) {

    $row_pos = ($i & 1) ? 'odd' : 'even';
    echo "<div id='A{$i}' class='row-{$row_pos}'>{$v['f_name']} {$v['l_name']} - {$v['amount']} - {$v['date']}</div>\n";

$i++;
}

Таким образом, это дает мне очень простой способ создать красивую таблицу.

1 голос
/ 26 сентября 2013
//for numbers n [0,1,2,3,4....]

if((n+2)%2==1) {
   //odd
}else {
  //even
}

Ноль - четное число.Другими словами, его четность - качество целого числа, являющегося четным или нечетным, - четна.Самый простой способ доказать, что ноль является четным, состоит в том, чтобы проверить, что он соответствует определению «четного»: это целое число, кратное 2, в частности, 0 × 2. В результате ноль разделяет все свойства, которые характеризуют четные числа: 0делится на 2, 0 окружен с обеих сторон нечетными числами, 0 является суммой целого числа (0) с самим собой, а набор из 0 объектов может быть разбит на два равных набора.от http://en.wikipedia.org/wiki/Parity_of_zero

0 голосов
/ 19 апреля 2018

Попробуйте это с полем #Input

<?php
    //checking even and odd
    echo '<form action="" method="post">';
    echo "<input type='text' name='num'>\n";
    echo "<button type='submit' name='submit'>Check</button>\n";
    echo "</form>";

    $num = 0;
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
      if (empty($_POST["num"])) {
        $numErr = "<span style ='color: red;'>Number is required.</span>";
        echo $numErr;
        die();
      } else {
          $num = $_POST["num"];
      }


    $even = ($num % 2 == 0);
    $odd = ($num % 2 != 0);
    if ($num > 0){
        if($even){
            echo "Number is even.";
        } else {
            echo "Number is odd.";
        }
    } else {
        echo "Not a number.";
    }
    }
?>
0 голосов
/ 19 апреля 2018
//checking even and odd
$num =14;

$even = ($num % 2 == 0);
$odd = ($num % 2 != 0);

if($even){
    echo "Number is even.";
} else {
    echo "Number is odd.";
}
0 голосов
/ 25 мая 2016

Попробуйте,

$number = 10;
 switch ($number%2)
 {
 case 0:
 echo "It's even";
 break;
 default:
 echo "It's odd";
 }
0 голосов
/ 13 февраля 2016
$before = microtime(true);

$n = 1000;  
$numbers = range(1,$n);

$cube_numbers = array_map('cube',$numbers);

function cube($n){      
    $msg ='even';       
    if($n%2 !=0){
        $msg = 'odd';
    }               
    return "The Number is $n is ".$msg;
}

foreach($cube_numbers as $cube){
    echo $cube . "<br/>";
}

$after = microtime(true);

echo $after-$before. 'seconds';
...