fork(1) download
  1. <?php
  2.  
  3.  
  4. function spellSmallNumber($num) {
  5. $result = array();
  6. $spelling = array(
  7. 0 => 'ноль', 10 => 'десять', 100 => 'сто',
  8. 1 => 'один', 11 => 'одиннадцать', 20 => 'двадцать', 200 => 'двести',
  9. 2 => 'два', 12 => 'двенадцать', 30 => 'тридцать', 300 => 'триста',
  10. 3 => 'три', 13 => 'тринадцать', 40 => 'сорок', 400 => 'четыреста',
  11. 4 => 'четыре', 14 => 'четырнадцать', 50 => 'пятьдесят', 500 => 'пятьсот',
  12. 5 => 'пять', 15 => 'пятнадцать', 60 => 'шестьдесят', 600 => 'шестьсот',
  13. 6 => 'шесть', 16 => 'шестнадцать', 70 => 'семьдесят', 700 => 'семьсот',
  14. 7 => 'семь', 17 => 'семнадцать', 80 => 'восемьдесят', 800 => 'восемьсот',
  15. 8 => 'восемь', 18 => 'восемнадцать', 90 => 'девяносто', 900 => 'девятьсот',
  16. 9 => 'девять', 19 => 'девятнадцать'
  17. );
  18.  
  19. $femaleSpelling = array(
  20. 1 => 'одна', 2 => 'две'
  21. );
  22.  
  23. if ($num == 0) {
  24. return $num;
  25. }
  26.  
  27.  
  28. $hundWithoutDec = floor($num / 100) * 100; //убирает десятки у сотен
  29. if($hundWithoutDec != 0) {
  30. array_push($result, $spelling[$hundWithoutDec]);
  31. }
  32.  
  33. if($hundWithoutDec != 0) {
  34. $hundDec = $num % 100; // оставляет только десятки
  35. if($hundDec >= 11 and $hundDec <=19) {
  36. array_push($result, $spelling[$hundDec]);
  37. } elseif ($hundDec != 0) {
  38. $hundDecWithoutOne = floor($hundDec / 10) * 10; //десятки без единиц
  39. if($hundDecWithoutOne != 0) {
  40. array_push($result, $spelling[$hundDecWithoutOne]);
  41. }
  42.  
  43. $hundOne = $hundDec % 10;
  44. if ($hundOne != 0) {
  45. array_push($result, $spelling[$hundOne]);
  46. }
  47.  
  48. }
  49.  
  50. } else {
  51. if ($num >= 11 and $num <=19) {
  52. array_push($result, $spelling[$num]);
  53. }
  54. $hundDecWithoutOne = floor($num / 10) * 10; //десятки без единиц
  55. if($hundDecWithoutOne != 0) {
  56. array_push($result, $spelling[$hundDecWithoutOne]);
  57. }
  58. $hundOne = $num % 10;
  59.  
  60. if ($num != 0) {
  61. array_push($result, $spelling[$num]);
  62. }
  63.  
  64. }
  65.  
  66.  
  67.  
  68. $text = implode(' ', $result);
  69. return $text;
  70. }
  71.  
  72. $v = spellSmallNumber(001);
  73. echo "$v\n";
  74. echo"--------------------------------\n";
  75.  
  76. $w = spellSmallNumber(101);
  77. echo "$w\n";
  78. echo"--------------------------------\n";
  79.  
  80. $x = spellSmallNumber(056);
  81. echo "$x\n";
  82. echo"--------------------------------\n";
  83.  
  84. $y = spellSmallNumber(066);
  85. echo "$y\n";
  86. echo"--------------------------------\n";
  87.  
  88. $z = spellSmallNumber(156);
  89. echo "$z\n";
  90. echo"--------------------------------\n";
  91. ?>
Success #stdin #stdout #stderr 0.02s 23628KB
stdin
Standard input is empty
stdout
один
--------------------------------
сто один
--------------------------------
сорок 
--------------------------------
пятьдесят 
--------------------------------
сто пятьдесят шесть
--------------------------------
stderr
PHP Notice:  Undefined offset: 46 in /home/raMQh4/prog.php on line 61
PHP Notice:  Undefined offset: 54 in /home/raMQh4/prog.php on line 61