-
Notifications
You must be signed in to change notification settings - Fork 1
/
trafficLight.php
37 lines (33 loc) · 1.8 KB
/
trafficLight.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
/**
* Работа светофора запрограммирована таким образом:
* с начала каждого часа, в течении трех минут горит
* зеленый сигнал, следующие две минуты горит красный,
* дальше в течении трех минут - зеленый и т. д.
* Вам нужно разработать программу, которая по введенному
* числу определяла какого цвета сейчас горит сигнал.
*
* Получается, что цикл от зеленого к зеленому - 5 минут:
* 3 минуты - зеленый, 2 - красный.
* Значит надо брать остаток от деления на 5 минут.
* Результат деления будет количество минут на цвет.
* Имея это значение мы можем определить какой цвет горит:
* 3 минуты - зеленый, 2 - красный.
*/
function getColor($minute) {
if (!is_int($minute)) return ['status' => false, 'message' => 'Минуты должны быть целым числом'];
// Если в диапазоне минут от 0 до 59
$isInRange = ($minute >= 0 && $minute < 60) ? true : false;
if (!$isInRange) return ['status' => false, 'message' => 'Минуты должны быть от 0 до 59'];
$color = ($minute%5 <3) ? "зеленый" : "красный";
return $color;
}
for($i = 0; $i < 60; $i++) {
$minute = $i;
$trafficLight = getColor($minute);
if (is_array($trafficLight)) {
echo $trafficLight['message'];
break;
}
echo "На минуте {$minute} горит {$trafficLight} свет светофора.\n";
}