题目是:150盏亮着的电灯,各有一个拉线开关控制,按顺序编号为1,2,3,…,150.将编号为3的倍数的灯的拉线各拉一下;再将编号为5的倍数的灯的拉线各拉一下,拉完后亮着的灯数为多少盏.网上有人用各种编程语言实现,唯独没有PHP语言的,闲的无聊,自己写了一个。
<?php
// 首先我定义两个变量,分别表示亮和不亮
$a = 1;// 亮
$b = 2;// 灭
// 数组里面有150盏亮着的灯
$arr = array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
// for 循环
for($i=0;$i<150;$i++){
if(($i+1)%3==0){ // 3的倍数
$arr[$i] = 2; // 灯灭了
}
if(($i+1)%5==0){ // 5的倍数
if($arr[$i] == 1){// 如果灯亮的
$arr[$i] = 2; // 就灭了
}else{ // 否则
$arr[$i] = 1; // 就亮了
}
}
}
// 现在统计亮着的和灭了的个数
print_r(array_count_values($arr));
// 打印出来的结果是 Array ( [1] => 90 [2] => 60 )
// 得到结果为,亮着的90个,灭了60个
?>
一个比较简单的程序,实在无聊写的,哈哈。