За последние 24 часа нас посетили 94838 программистов и 8832 робота. Сейчас ищут 2323 программиста ...

Работа с условными операторами

Тема в разделе "PHP для новичков", создана пользователем N04h., 15 мар 2018.

  1. N04h.

    N04h. Новичок

    С нами с:
    15 мар 2018
    Сообщения:
    1
    Симпатии:
    0
    Здравствуйте, форумчане.

    Недавно начал изучать PHP, и, понемножку, стараюсь закреплять информацию на практике.

    Попалось мне вот такое задание:

    "В данном трехзначном числе переставьте цифры так, чтобы новое число оказалось наибольшим из возможных"

    Вот, как я его реализовал:


    PHP:
    1. <?php
    2. $a = 563;
    3.  
    4. $z_sotni = $a % 100;
    5. $sotni = ($a - $z_sotni) / 100;
    6. $z_desyatki = $z_sotni % 10;
    7. $desyatki = ($z_sotni - $z_desyatki) / 10;
    8. $odunuci = $z_desyatki;
    9.  
    10. echo $sotni.$desyatki.$odunuci."</br>";
    11.  
    12. if ($sotni <= $desyatki && $desyatki <= $odunuci) {
    13.     echo $odunuci.$desyatki.$sotni;
    14.  
    15. } elseif ($desyatki <= $sotni && $sotni <= $odunuci) {
    16.     echo $odunuci.$sotni.$desyatki;
    17.  
    18. } elseif ($odunuci <= $sotni &&  $sotni <= $desyatki) {
    19.     echo $desyatki.$sotni.$odunuci;
    20.  
    21. } elseif ($odunuci <= $desyatki && $desyatki <= $sotni) {
    22.     echo $sotni.$desyatki.$odunuci;
    23.  
    24. } elseif ($desyatki >= $odunuci && $odunuci >= $sotni) {
    25.     echo $desyatki.$odunuci.$sotni;
    26. }
    27.  
    28. ?>
    Код, вроде, работает. Но меня интересует, можно ли как-то решить данное задание по-другому? То-есть, с использованием только условных операторов. Возможно, код програмы можно сделать поменьше?

    Буду благодарен за помощь.
     
  2. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    PHP:
    1. $num = 123;
    2. $num = preg_split('//u', $num, null, PREG_SPLIT_NO_EMPTY);
    3. rsort($num);
    4. dd(implode('',$num));