1. Ruby / Говнокод #3910

    −104

    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
    32. 32
    i = -1
    ans = threes.map do |s|
      i+= 1
      n = s.to_i
      next if n == 0
      if i == 0
        nums[n]
      elsif i == 1
        # тысячи
        e = n % 10
        d = n % 100
        suff = ok_z[e]
        suff = ok_z[0] if d > 10 and d < 20
        t = nums[n]
        if e == 1 or e == 2 and not (d > 10 and d < 20)
          # один и два перед тысячами меняются.
          # не регексп, чтобы работал и юникод и однобайтные кодировки
          t = " " + t + " "
          t = t.sub(" один "," одна ").sub(" два "," две ")
          t = t[1..99].chop
        end
        t + (n!=0 ? " " : "") + threes_names[i-1] + suff
      else
        e = n % 10
        d = n % 100
        suff = ok_m[e]
        suff = ok_m[0] if d > 10 and d < 20
        nums[n] + (n!=0 ? " " : "") + threes_names[i-1] + suff
      end
    end.reverse.compact.join(" ")
     
    puts ans

    Запостил: evrial, 08 Августа 2010

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

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

    Ошибка компиляции комментария:
    1. Гости могут высказаться только в понедельник, среду, четверг или воскресение
    ava Семь раз отмерь — один отрежь, guest!
    А не использовать ли нам bbcode?
    • [b]жирный[/b] — жирный
    • [i]курсив[/i] — курсив
    • [u]подчеркнутый[/u] — подчеркнутый
    • [s]перечеркнутый[/s] — перечеркнутый
    • [blink]мигающий[/blink] — мигающий
    • [color=red]цвет[/color] — цвет (подробнее)
    • [size=20]размер[/size] — размер (подробнее)
    • [code=<language>]some code[/code] (подробнее)
    Проверочный код