在PHP中找出一个数字/变量是奇数还是偶数的最简单最基本的方法是什么? 这和mod有关吗?
我试过一些剧本,但是…谷歌目前没有发送。
在PHP中找出一个数字/变量是奇数还是偶数的最简单最基本的方法是什么? 这和mod有关吗?
我试过一些剧本,但是…谷歌目前没有发送。
当前回答
使用位操作: 在此方法中,您将找到带有1的数字的逐位与。如果位与为1,则该数字为奇数,否则为偶数。
function odd($var){
return $var & 1;
}
function even($var){
return !($var&1);
}
$arr = range(1,10);
echo "Odd Numbers: ";
echo "<pre>";
print_r(array_filter($arr2, 'odd'));
echo "<pre>";
echo "<br>Even Numbers: ";
echo "<pre>";
print_r(array_filter($arr2, 'even'));
echo "</pre>";
输出将是:
Odd Numbers:
Array
(
[0] => 1
[2] => 3
[4] => 5
[6] => 7
[8] => 9
)
Even Numbers:
Array
(
[1] => 2
[3] => 4
[5] => 6
[7] => 8
[9] => 10
)
其他回答
$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';
另一种选择是简单的位检查。
n & 1
例如:
if ( $num & 1 ) {
//odd
} else {
//even
}
两个简单的位函数,返回0表示False,返回1表示True。
# is_odd: 1 for odd , 0 for even
odd = number & 1
# is_even: 1 for even , 0 for odd
even = number & 1 ^ 1
虽然所有的答案都是正确的,但简单的解决方法是:
$check = 9;
:
echo ($check & 1 ? 'Odd' : 'Even');
or:
echo ($check % 2 ? 'Odd' : 'Even');
工作得很好。
是的,使用mod
$even = ($num % 2 == 0);
$odd = ($num % 2 != 0);