有100盏灯和100个开关,刚开始的时候等全是灭的,someone第一轮按下所有开关(开的按一下变灭,灭的按一下变开),第二轮隔一个按一下(偶数个按),第三轮隔2个(3的倍数个按),求第100轮之后有多少盏灯是亮的。
<?
php
//解法1
//遍历解法
$array=
array_fill(1,100,1
);
for(
$i=2;
$i<=100;
$i++
)
{
for(
$j=1;
$j<=100;
$j++
)
{
if(
$j%
$i==0
)
{
$array[
$j]=1-
$array[
$j];
}
}
}
var_dump(
array_shift(
array_count_values(
$array)));
//解法2
//算法解法
$max_sqrt=
intval(
sqrt(100
));
for(
$i=1;
$i<=
$max_sqrt;
$i++
)
{
echo "第".
$i*
$i."盏灯是亮着的<br/>"
;
}
echo "一共".
$max_sqrt."盏灯是亮着的";
转载于:https://www.cnblogs.com/lizhaoyao/p/4863200.html
转载请注明原文地址: https://win8.8miu.com/read-1499188.html