打印前50个可以被1到10的每个数字整除的数字我已经完成了这个,现在我怎样才能在内循环中进行除法测试任务?
for ($i = 1, $j = 1; $j <= 50; $i++) {
if ($i % 1 == 0 && $i % 2 == 0 && $i % 3 == 0 && $i % 4 == 0 && $i % 5 == 0 && $i % 6 == 0 && $i % 7 == 0 && $i % 8 == 0 && $i % 9 == 0 && $i % 10 == 0) {
echo "$i\n";
$j++;
}
}
答案 0 :(得分:4)
for ($i = 1; $i <= 50; $i++)
{
$j = $i * 2520;
echo "$j\n";
}
答案 1 :(得分:2)
将问题翻到头上。而不是搜索分裂,而是将它们分开:
$min = 5 * 7 * 8 * 9; // Min number is 5 * 7 * 8 * 9. (1,2,3,4,6,10 are implied) Every number that meets the condition is a multiple of this.
for ($i = 1; $i <= 50; $i++)
{
echo $min * $i;
echo "\n";
}
答案 2 :(得分:1)
您可以嵌套循环并使用模数运算符(%
)。
for ($i = 1, $count = 0; $count < 50; $i++) {
$good = true;
for ($j = 2; $j <= 10; $j++) {
if ($i % $j != 0) {
$good = false;
break;
}
}
if ($good) {
echo "$i\n";
$count++;
}
}
答案 3 :(得分:1)
您只需要测试它们是9
,8
,7
和5
的倍数,如果是,请递增j
计数器。当j
到达50
时,主循环就会中断。
$div = array(9,8,7,5);
function isMultipleOf10($num){
for($i=0;$i<4;$i++){
if($num%$div[$i]!=0){
return 0;
}
}
return 1;
}
$i = 1;
$j = 0;
while($j<50){
if(isMultipleOf10($i)){
echo $i . "\n";
$j++;
}
$i++;
}