1. Список говнокодов пользователя evrial

    Всего: 1

  2. 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)