1. PHP / Говнокод #11446

    +75

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    public function fromRimToDec($str) {
        $i = 1;
        $ii = 2;
        $iii = 3;
        $iv = 4;
        $v = 5;
        $vi = 6;
        $vii = 7;
        $viii = 8;
        $ix = 9;
        $x = 10;
        return $$str;
    }
    
    public function fromDecToRim($str) {
        $RimDigit = array(1 => 'i', 4 => 'iv', 5 => 'v', 9 => 'ix', 10 => 'x');
        $result = '';
        if ($str <= 3) {
            for ($i = 0; $i < $str; $i++) {
                $result = $result.$RimDigit[1];
            }
        } else if ($str > 5 && $str <= 8) {
            $result = $RimDigit[5];
            for ($i = 5; $i < $str; $i++) {
                $result = $result.$RimDigit[1];
            }
        } else {
            $result = $RimDigit[$str];
        }
        return $result;
    }

    Две феерически говёных взаимнообратных функции которые используются в супер функционале чьей-то самописной цмс для автоматического преобразования нумерованных списков с римскими\арабскими цифрами. (Да да, в этой цмс списки с римскими цифрами ограничены по длине десятью итемами, а обычные списки обрабатываются отдельно.) Вся алгебра непозиционных систем счисления меркнет в сравнении.

    Запостил: vistefan, 19 Июля 2012

    Комментарии (9) RSS

    • Почему fromRimToDec? Roman же.
      Ответить
      • Поди знай, школьник какой-то шкодил явно.
        Ответить
      • потому что это принципиально новая система исчисления - исключительно до десяти
        Ответить
    • в первом случае - оригинальный подход с метапрограммированием
      Ответить
      • ... и потенциальные ворота для похапе-инфекции в новое измерение.
        Ответить
    • ol { list-style-type: lower-roman; }
      Ответить
    • Помница, когда в колледже учился, делал через case на Паскале. Там такое было >_<
      Ответить

    Добавить комментарий