首页 > 编程语言 > 详细

算法一

时间:2015-10-09 00:51:51      阅读:273      评论:0      收藏:0      [点我收藏+]
//问: 如果有100个灯,走一次就关闭自己的倍数的灯,  然后+1 重新走 再次按倍数的关灯  到100个灯的时候这个灯是亮的还是关闭的
//答: 与自己走过的次数取模成功 然后累加取模成功的数量,再次与2取模如果成功那么就是亮的否则就是关闭的
function light($num)
{
	$a = 1;
	
	for ($i=1; $i <= $num; $i++) { 
		echo ‘<div style="width:20px;height:20px;background-color:#faa2f2;float:left;margin-left:10px"></div>‘;
	}
	echo ‘<br /><hr />‘;
	//$color = array(‘#f2f2f2‘,‘#a2a2a2‘);
	for ($z=1; $z <= $num; $z++) { 
		for ($x=1; $x <= $z; $x++) { 
			if ($z%$x == 0) {
				@$sum[$z] += 1;
			}
			//echo ‘<div style="width:20px;height:20px;background-color:#000;float:left;margin-left:10px"></div>‘;
		}
		for ($j=$z; $j <= $num; $j++) { 
			if($j%$z == 0){
				$color = ‘#f2f2f2‘;
			}else{
				$color = ‘#faa2f2‘;
			}
			//echo ‘<div style="width:20px;height:20px;background-color:‘.$color.‘;float:left;margin-left:10px">‘.$j.‘</div>‘;
		}
		
		if($sum[$z]%2 == 0){
			//echo ‘第‘.$z.‘次亮的‘;
			$last = ‘第‘.$z.‘次亮的‘;
		}else{
			$last = ‘第‘.$z.‘次不亮的‘;
		}
		//echo ‘<br /><br />‘;
	}

	echo $last;
}

light(16); //求第十六次灯是否亮的


算法一

原文:http://my.oschina.net/Majw/blog/514520

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!