Чтение RSS каналов

Форум

Открыть Ответить

Помогите доработать решение задчки по php

0

0
1
05.02.2019 10:30:30
Привет, коллеги.
Я решил, что пора подтянуть свои не ахти какие знания в php.

Вот задачка: Создайте переменную $studentsCount - присвойте ей случайное значение от 1 до 1000000. Создайте программу, которая выведет в нужной форме текстовое сообщение, например такие “на учебе 100 студентов”, или “на учебе 2 студента” и т.д.

Я решил её вот так:
$studentsCoun = rand(1, 1000000);
  

    if( ($studentsCoun % 100 >= 11) && ($studentsCoun % 100 <= 19) ){
        
        echo "На учебе ".$studentsCoun." студентов";
    
    } else {
    
        if($studentsCoun % 10 == 1):
           
          echo "На учебе ".$studentsCoun." студент";  
        
        elseif ($studentsCoun % 10 == 2 || $studentsCoun % 10 == 3 || $studentsCoun % 10 == 4):
        
          echo "На учебе ".$studentsCoun." студента";
          
        else:
        
          echo "На учебе ".$studentsCoun." студентов";
          
        endif; 
                
    }


Куратор написал замечание по решению. Все правильно, все работает, но "В условии для остатков 2, 3, 4 можно уменьшить количество логических опереаторов."

Ни как не могу понять, как там уменьшить количество "ИЛИ"?
3.98

3.98
2
05.02.2019 18:39:0705.02.2019 18:39:33
Все таки понял. Оказалось все элементарно. Аж стыдно, что сразу не понял.

Было:
($studentsCoun % 10 == 2 || $studentsCoun % 10 == 3 || $studentsCoun % 10 == 4)


Стало:
($studentsCoun % 10 == 2 || $studentsCoun % 10 <= 4)
3.98

3.98
3
03.03.2019 16:01:1003.03.2019 16:03:29
$max=10000;
$count = rand(1, $max);
$where=array("в магазин", "в кафе", "есть", "спать", "гулять");
$how=array("молча ушли", "смотались", "решили пойти");
$i=rand(0,(count($where)-1));
$k=rand(0,(count($how)-1));

echo "На учебе  из ".$max." студентов, на месте только  ".$count." чел.  
Остальные ".($max - $count)." чел. ".$how[$k]." ".$where[$i];
4.4

4.4
4
06.03.2019 09:33:28
Использую древнею как ...... функцию

//Функция вывода множественный; многочисленный
function plural($n, $form1, $form2, $form5){
$n = abs($n) % 100;
$n1 = $n % 10;
if ($n > 10 && $n < 20) return $form5;
if ($n1 > 1 && $n1 < 5) return $form2;
if ($n1 == 1) return $form1;
return $form5;
}
3.61

3.61
Открыть Ответить
Хотите опробовать SLAED CMS в действии?

Технологии

PHP MySQL HTML 5 CSS 3 jQuery jQuery UI

Контакты

  • D-49179, Deutschland
    Ostercappeln, Im Siek 6
  • +49 176 61966679

  • https://slaed.net
Идеи и предложения
Обратная связь