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

    +164

    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
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    if (strlen($str)>1 && substr($str,strlen($str)-2,1)=="1") {
            switch(substr($str,strlen($str)-1,1)) {
            case "0": $newstr="десять рублей";break;
            case "1": $newstr="одиннадцать рублей";break;
            case "2": $newstr="двенадцать рублей";break;
            case "3": $newstr="тринадцать рублей";break;
            case "4": $newstr="четырнадцать рублей";break;
            case "5": $newstr="пятнадцать рублей";break;
            case "6": $newstr="шестнадцать рублей";break;
            case "7": $newstr="семьнадцать рублей";break;
            case "8": $newstr="восемьнадцать рублей";break;
            case "9": $newstr="девятьнадцать рублей";break;}}
    else {
            switch(substr($str,strlen($str)-1,1)) {
            case "0": $newstr="рублей";break;
            case "1": $newstr="один рубль";break;
            case "2": $newstr="два рубля";break;
            case "3": $newstr="три рубля";break;
            case "4": $newstr="четыре рубля";break;
            case "5": $newstr="пять рублей";break;
    .......................................
            case "7": $newstr="семь миллионов ".$newstr;break;
            case "8": $newstr="восемь миллионов ".$newstr;break;
            case "9": $newstr="девять миллионов ".$newstr;break;}
        if (strlen($str)>7) {
            switch(substr($str,strlen($str)-8,1)) {
            case "2": $newstr="двадцать ".$newstr;break;
            case "3": $newstr="тридцать ".$newstr;break;
            case "4": $newstr="сорок ".$newstr;break;
            case "5": $newstr="пятьдесят ".$newstr;break;
            case "6": $newstr="шестьдесят ".$newstr;break;
            case "7": $newstr="семьдесят ".$newstr;break;
            case "8": $newstr="восемьдесят ".$newstr;break;
            case "9": $newstr="девяносто ".$newstr;break;}}}}
    if (strlen($str)>8) {
    switch(substr($str,strlen($str)-9,1)) {
    	case "0": $newstr="сто ".$newstr;break;
        case "1": $newstr="сто ".$newstr;break;
        case "2": $newstr="двести ".$newstr;break;
        case "3": $newstr="триста ".$newstr;break;
        case "4": $newstr="четыреста ".$newstr;break;
        case "5": $newstr="пятьсот ".$newstr;break;
        case "6": $newstr="шестьсот ".$newstr;break;
        case "7": $newstr="семьсот ".$newstr;break;
        case "8": $newstr="восемьсот ".$newstr;break;
        case "9": $newstr="девятьсот ".$newstr;break;}}

    Вот так делают "сумму прописью".
    Радует и форматирование, и порядок порядков чисел в if .. elseif .. else

    Запостил: Mihard, 03 Августа 2010

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

    • рублёв!
      Ответить
    • Вырезать каждый разряд substr'ом - это офигенно!
      Ответить
    • блин
      ты точно лошара класе в восьмом учишься.
      помнится, в мою молодость на факультативе подобные задачки встречались ))
      Ответить

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