我需要打印从0到n的数字,这些数字除以所有成分。 我写了代码,但它打印的数字至少也只划分了一个成分:
$n = $_POST['inp'];
$numbers = range(0, $n);
foreach ($numbers as $value) {
$value = (string)$value;
if ( strpos($value,"0") !== false ) { continue; }
for($i=0; $i<strlen($value);$i++) {
if (($value % $value[$i]) == 0) {
echo $value , "\n";
break;
}
}
}
答案 0 :(得分:1)
当余数不 0时,考虑跳出循环。如果在最后一次循环($i == strlen($value)-1
)中余数为0,那么你就会知道每个组成数字的余数为0。在代码中:
if (($value % $value[$i]) != 0) {
break;
} else if ($i == strlen($value)-1) {
echo $value , "\n";
}
还有其他方法可以解决这个问题,但这是最接近现有代码的方法。