解决这个简单的PHP数学问题


resolving this simple php math

我正试图获得2和3的多个数字,请帮助。由于

for($i = 0; $i <30; $i++) 
if($i % 2)
echo 'number is '. $i . ' is multiple of 2 <br/>';
elseif($i %3)
echo 'number is '. $i . 'is multiple of 3 <br/>';
else
echo 'number is '. $i . 'is multiple of some other number <br/>';

试试这个:

if($i % 2 === 0)
  ...
elseif($i %3 === 0)
  ...

基本上,如果模是0,那么这意味着这个数是可整除的。

然而,你的逻辑的另一个问题是,一个数字可以被23整除。您可以通过将这些语句提取到单独的if语句中来解决这个问题:

if($i %2 === 0) {
  ... 
}
if($i %3 === 0) {
  ... 
}

但这打破了你最后的else,因为你不能再掉下去了。您可以通过在循环的顶部设置一个变量为false来解决这个问题。然后,如果触发了任何if语句,则将变量设置为true。最后,如果变量仍然是false,则在每次迭代结束时打印"不可分割"消息。

您需要一个NOT if(i%2),因为如果余数为零,它是一个倍数。

另外,如果你试图找到30的倍数,你只需要循环到15。或数量/2 .

for($i = 0; $i < 30; $i++) 
{
if($i % 2 == 0)
    echo 'number is '. $i . ' is multiple of 2 <br/>';
elseif($i % 3 == 0)
    echo 'number is '. $i . 'is multiple of 3 <br/>';
else
    echo 'number is '. $i . 'is multiple of some other number <br/>';
}

我想在if条件之前再添加一个条件

if($i%2 === 0 && $i%3 === 0) {
    echo 'multiple of 2 and 3'n';
}

也可以这样写:

if ($i%6 === 0) {
 ....
}

用于上述if条件。