打印从1到1000 PHP的所有奇数

时间:2015-07-01 13:21:01

标签: php

我想知道如何使用PHP打印从1到1000的所有ODD编号。

我知道我需要使用%modulo,但我想知道如何合并它。

到目前为止,这是我的代码:

for($i=1; $i<=1000; $i++){
            if($i%1000){

            }
        }

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:1)

使用modulo($i2之后找到余数:

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