我想知道如何使用PHP打印从1到1000的所有ODD编号。
我知道我需要使用%modulo,但我想知道如何合并它。
到目前为止,这是我的代码:
for($i=1; $i<=1000; $i++){
if($i%1000){
}
}
有什么想法吗?谢谢!
答案 0 :(得分:1)
使用modulo($i
除2
之后找到余数:
for($i=1; $i<=1000; $i++){
if($i%2 == 1){// if the remainder after division `$i` by 2 is 1
echo $i,"<br/>";// if odd, echo it out and then echo newline for better readability
}
}
或使用数组:
$a = range(1,1000);
array_walk($a,function($v){if($v%2){echo$v,"<br/>";}});
或者没有模数,从1开始并递增2:
for($i=1; $i<=1000; $i+=2){
echo $i,"<br/>";
}
答案 1 :(得分:1)
仅仅是因为使用一系列发电机提供答案(而且根本没有使用模数)这一点
$isOdd = function ($value) {
return $value & 1;
};
function filteredNumbers(Callable $filter) {
$i = 1;
do {
if (call_user_func($filter, $i)) {
yield $i;
}
} while ($i++ <= PHP_INT_MAX);
}
function filteredCountLimit(Traversable $filter, $limit) {
$counter = 0;
foreach($filter as $value) {
if (++$counter > $limit) {
break;
}
yield $value;
}
}
$odds = filteredNumbers($isOdd);
foreach(filteredCountLimit($odds, 1000) as $odd) {
echo $odd, PHP_EOL;
}
需要PHP&gt; = 5.5