fork(1) download
  1. <?php
  2.  
  3.  
  4. function spellSmallNumber($int, $isMan) {
  5. if ($int >= 0 && $int < 1000) {
  6. $spelling = [
  7. 0 => 'ноль',
  8. 1 => 'один',
  9. 2 => 'два',
  10. 3 => 'три',
  11. 4 => 'четыре',
  12. 5 => 'пять',
  13. 6 => 'шесть',
  14. 7 => 'семь',
  15. 8 => 'восемь',
  16. 9 => 'девять',
  17. 10 => 'десять',
  18. 11 => 'одиннадцать',
  19. 12 => 'двенадцать',
  20. 13 => 'тринадцать',
  21. 14 => 'четырнадцать',
  22. 15 => 'пятнадцать',
  23. 16 => 'шестнадцать',
  24. 17 => 'семнадцать',
  25. 18 => 'восемьнадцать',
  26. 19 => 'девятнадцать',
  27. 20 => 'двадцать',
  28. 30 => 'тридцать',
  29. 40 => 'сорок',
  30. 50 => 'пятьдесят',
  31. 60 => 'шестьдесят',
  32. 70 => 'семьдесят',
  33. 80 => 'восемьдесят',
  34. 90 => 'девяносто',
  35. 100 => 'сто',
  36. 200 => 'двести',
  37. 300 => 'триста',
  38. 400 => 'четыреста',
  39. 500 => 'пятьсот',
  40. 600 => 'шестьсот',
  41. 700 => 'семьсот',
  42. 800 => 'восемьсот',
  43. 900 => 'девятьсот',
  44. ];
  45.  
  46. $spellingWomen = [
  47. 1 => 'одна',
  48. 2 => 'две'
  49. ];
  50.  
  51. if($int/100 >= 1) {
  52. $word = 100 * floor($int/100);
  53. $word = $spelling[$word];
  54. $result = $word;
  55. if($int % 100 >= 1) {
  56. if($isMan == 0 && ($int % 100 == 1 || $int % 100 == 2)) {
  57. $word1 = $spellingWomen[$int % 100];
  58. $result = $result.' '.$word1;
  59. } elseif($int % 100 <= 19 || $int % 100 % 10 == 0) {
  60. $word1 = $spelling[$int % 100];
  61. $result = $result.' '.$word1;
  62. } else {
  63. $word1 = 10 * floor($int % 100 / 10);
  64. $word1 = $spelling[$word1];
  65. if($isMan == 0 && ($int % 100 % 10 == 1 ||$int % 100 % 10 == 2)) {
  66. $word2 = $int % 100 % 10;
  67. $word2 = $spellingWomen[$word2];
  68. } else {
  69. $word2 = $int % 100 % 10;
  70. $word2 = $spelling[$word2];
  71. }
  72. $result = $word.' '.$word1.' '.$word2;
  73. }
  74. }
  75. } else {
  76. if(($int >= 0 && $int <= 19) || $int % 10 == 0) {
  77. if($isMan == 0 && ($int == 1 || $int == 2)) {
  78. $word = $spellingWomen[$int];
  79. $result = $word;
  80. } else {
  81. $word = $spelling[$int];
  82. $result = $word;
  83. }
  84. } else {
  85. $word = 10 * floor($int / 10);
  86. $word = $spelling[$word];
  87. $word1 = $int % 10;
  88. $word1 = $spelling[$word1];
  89. $result = $word.' '.$word1;
  90. }
  91. }
  92. return $result;
  93. }
  94. }
  95.  
  96. function getWordForm($int, $str, $str2, $str5) {
  97. if($int == 0 || ($int >= 5 && $int <= 20) || $int % 10 >= 5 || $int % 10 == 0 || ($int % 100 <= 19 && $int % 100 >= 5)) {
  98. return($str5);
  99. }
  100.  
  101. if(($int >= 2 && $int <= 4) || ($int % 10 >= 2 && $int % 10 <= 4)) {
  102. return($str2);
  103. }
  104.  
  105. if($int == 1 || $int % 10 == 1) {
  106. return($str);
  107. }
  108. }
  109.  
  110. function spellNumber($int) {
  111. if($int >=1000000 && $int <= 999999999) {
  112. $millions = floor($int / 1000000);
  113. $smallNumberWord = spellSmallNumber($millions, 1);
  114. $thousands = floor($int / 1000) % 1000;
  115. $smallNumberWord1 = spellSmallNumber($thousands, 0);
  116. $smallNumberWord2 = $int % 1000;
  117. $smallNumberWord2 = spellSmallNumber($smallNumberWord2, 1);
  118. $numberForm = getWordForm($int, 'рубль', 'рубля', 'рублей');
  119. $numberForm1 = getWordForm($thousands ,'тысяча', 'тысячи', 'тысяч');
  120. $numberForm2 = getWordForm($millions, 'миллион', 'миллиона', 'миллионов');
  121. $result = $smallNumberWord.' '.$numberForm2.' '.$smallNumberWord1.' '.$numberForm1.' '.$smallNumberWord2.' '.$numberForm;
  122. $result = preg_replace('/ноль /u', '', $result);
  123. $result = preg_replace('/(?<=миллионов )тысяч /u', '', $result);
  124. } elseif($int >= 1000 && $int <= 999999) {
  125. $thousands = floor($int / 1000);
  126. $smallNumberWord = spellSmallNumber($thousands, 0);
  127. $smallNumberWord1 = $int % 1000;
  128. $smallNumberWord1 = spellSmallNumber($smallNumberWord1, 1);
  129. $numberForm = getWordForm($int, 'рубль', 'рубля', 'рублей');
  130. $numberForm1 = getWordForm($thousands ,'тысяча', 'тысячи', 'тысяч');
  131. $result = $smallNumberWord.' '.$numberForm1.' '.$smallNumberWord1.' '.$numberForm;
  132. $result = preg_replace('/ноль /u', '', $result);
  133. } else {
  134. $smallNumberWord = spellSmallNumber($int, 1);
  135. $numberForm = getWordForm($int, 'рубль', 'рубля', 'рублей');
  136. $result = $smallNumberWord.' '.$numberForm;
  137. }
  138. return $result;
  139. }
  140.  
  141. $amount = mt_rand(0, 999999999);
  142. echo "[$amount] ";
  143. $text = spellNumber($amount);
  144. echo "На банковском счету клиента №1 - $text\n";
  145.  
  146. $amount1 = mt_rand(0, 999999999);
  147. echo "[$amount1] ";
  148. $text1 = spellNumber($amount1);
  149. echo "На банковском счету клиента №2 - $text1\n";
  150.  
  151. $amount2 = mt_rand(0, 999999999);
  152. echo "[$amount2] ";
  153. $text2 = spellNumber($amount2);
  154. echo "На банковском счету клиента №3 - $text2\n";
  155.  
  156. $amount3 = mt_rand(0, 999999999);
  157. echo "[$amount3] ";
  158. $text3 = spellNumber($amount3);
  159. echo "На банковском счету клиента №4 - $text3\n";
  160.  
  161. $amount4 = 999999999;
  162. echo "[$amount4] ";
  163. $text4 = spellNumber($amount4);
  164. echo "На банковском счету клиента №5 - $text4\n";
  165.  
  166. $amount5 = 0;
  167. echo "[$amount5] ";
  168. $text5 = spellNumber($amount5);
  169. echo "На банковском счету клиента №6 - $text5\n";
  170.  
  171. $amount6 = 1;
  172. echo "[$amount6] ";
  173. $text6 = spellNumber($amount6);
  174. echo "На банковском счету клиента №7 - $text6\n";
  175.  
  176. $amount7 = 11012013;
  177. echo "[$amount7] ";
  178. $text7 = spellNumber($amount7);
  179. echo "На банковском счету клиента №8 - $text7\n";
  180.  
  181. $amount8 = 7000008;
  182. echo "[$amount8] ";
  183. $text8 = spellNumber($amount8);
  184. echo "На банковском счету клиента №9 - $text8\n";
  185.  
  186. $amount9 = 1002;
  187. echo "[$amount9] ";
  188. $text9 = spellNumber($amount9);
  189. echo "На банковском счету клиента №10 - $text9\n";
  190.  
  191. $amount10 = 1000;
  192. echo "[$amount10] ";
  193. $text10 = spellNumber($amount10);
  194. echo "На банковском счету клиента №11 - $text10\n";
  195.  
  196. $amount11 = 7000000;
  197. echo "[$amount11] ";
  198. $text11 = spellNumber($amount11);
  199. echo "На банковском счету клиента №12 - $text11\n";
  200.  
Success #stdin #stdout 0.02s 26300KB
stdin
Standard input is empty
stdout
[523336793] На банковском счету клиента №1 - пятьсот двадцать три миллиона триста тридцать шесть тысяч семьсот девяносто три рубля
[164357278] На банковском счету клиента №2 - сто шестьдесят четыре миллиона триста пятьдесят семь тысяч двести семьдесят восемь рублей
[276231166] На банковском счету клиента №3 - двести семьдесят шесть миллионов двести тридцать одна тысяча сто шестьдесят шесть рублей
[399960571] На банковском счету клиента №4 - триста девяносто девять миллионов девятьсот шестьдесят тысяч пятьсот семьдесят один рубль
[999999999] На банковском счету клиента №5 - девятьсот девяносто девять миллионов девятьсот девяносто девять тысяч девятьсот девяносто девять рублей
[0] На банковском счету клиента №6 - ноль рублей
[1] На банковском счету клиента №7 - один рубль
[11012013] На банковском счету клиента №8 - одиннадцать миллионов двенадцать тысяч тринадцать рублей
[7000008] На банковском счету клиента №9 - семь миллионов восемь рублей
[1002] На банковском счету клиента №10 - одна тысяча два рубля
[1000] На банковском счету клиента №11 - одна тысяча рублей
[7000000] На банковском счету клиента №12 - семь миллионов рублей