<?php function smallNumbers($number, $isFemale) { 0 => 'ноль ', 10 => 'десять ', 100 => 'сто ', 1 => 'один ', 11 => 'одиннадцать ', 20 => 'двадцать ', 200 => 'двести ', 2 => 'два ', 12 => 'двенадцать ', 30 => 'тридцать ', 300 => 'триста ', 3 => 'три ', 13 => 'тринадцать ', 40 => 'сорок ', 400 => 'четыреста ', 4 => 'четыре ', 14 => 'четырнадцать ', 50 => 'пятьдесят ', 500 => 'пятьсот ', 5 => 'пять ', 15 => 'пятнадцать ', 60 => 'шестьдесят ', 600 => 'шестьсот ', 6 => 'шесть ', 16 => 'шестнадцать ', 70 => 'семьдесят ', 700 => 'семьсот ', 7 => 'семь ', 17 => 'семнадцать ', 80 => 'восемьдесят ', 800 => 'восемьсот ', 8 => 'восемь ', 18 => 'восемнадцать ', 90 => 'девяносто ', 900 => 'девятьсот ', 9 => 'девять ', 19 => 'девятнадцать ' ); 1 => 'одна ', 2 => 'две ' ); $result = ''; $hundreds = 0; $tens = 0; $ones = 0; if ($hundreds >= 100) { $result .= $spelling[$hundreds]; } $remains = $number - $hundreds; if ($remains >= 20) { $result .= $spelling[$tens]; $ones = $remains - $tens; if (($ones < 3) & ($ones > 0) & ($isFemale == true)) { $result .= $femaleSpelling[$ones]; } elseif ($ones > 0) { $result .= $spelling[$ones]; } } elseif (($remains < 20) & ($remains > 0) & ($isFemale == false)) { $result .= $spelling[$remains]; } elseif (($remains < 3) & ($remains > 0) & ($isFemale == true)) { $result .= $femaleSpelling[$remains]; } elseif ($remains > 0) { $result .= $spelling[$remains]; } return $result; } function typer($number) { if ($number == 0) { $typeTotal = "ноль рублей"; } else { $typeTotal = ""; $typeMillions = smallNumbers($millions, false); $lastMillion = $millions % 10; if ((($millions%100<=20) & ($millions%100>=5)) or (($lastMillion>=5) or (($lastMillion==0) and ($millions>0)))) { $typeMillions .= "миллионов "; } elseif ($lastMillion == 1) { $typeMillions .= "миллион "; } elseif (($lastMillion > 1) & ($lastMillion < 5)) { $typeMillions .= "миллиона "; } $typeTotal .= $typeMillions; $typeThousands = smallNumbers($thousands, true); $lastThousand = $thousands % 10; if ((($thousands%100<=20) and ($thousands%100>=5)) or (($lastThousand>=5) or (($lastThousand==0) and ($thousands > 0)))) { $typeThousands .= "тысяч "; } elseif ($lastThousand == 1) { $typeThousands .= "тысяча "; } elseif (($lastThousand > 1) & ($lastThousand < 5)) { $typeThousands .= "тысячи "; } $typeTotal .= $typeThousands; $ones = $number % 1000; $typeOnes = smallNumbers($ones, false); $lastOne = $ones % 10; if ((($ones%100<=20) and ($ones%100>=5)) or (($lastOne>=5) or (($lastOne==0) and ($ones > 0)))) { $typeOnes .= "рублей"; } elseif ($lastOne == 1) { $typeOnes .= "рубль"; } elseif (($lastOne > 1) & ($lastOne < 5)) { $typeOnes .= "рубля"; } $typeTotal .= $typeOnes; } return $typeTotal; } function tests($n, $k) { for ($i=0,$j=1; $i < $n; $i++, $j*=$k) { $typedTestNumber = typer($randomTestNumber); echo "$randomTestNumber - $typedTestNumber\n"; } } tests(300, 1.07);
Standard input is empty
651487269 - шестьсот пятьдесят один миллион четыреста восемьдесят семь тысяч двести шестьдесят девять рублей 172433727 - сто семьдесят два миллиона четыреста тридцать три тысячи семьсот двадцать семь рублей 835073462 - восемьсот тридцать пять миллионов семьдесят три тысячи четыреста шестьдесят два рубля 460975396 - четыреста шестьдесят миллионов девятьсот семьдесят пять тысяч триста девяносто шесть рублей 356833472 - триста пятьдесят шесть миллионов восемьсот тридцать три тысячи четыреста семьдесят два рубля 443505242 - четыреста сорок три миллиона пятьсот пять тысяч двести сорок два рубля 122799682 - сто двадцать два миллиона семьсот девяносто девять тысяч шестьсот восемьдесят два рубля 552163962 - пятьсот пятьдесят два миллиона сто шестьдесят три тысячи девятьсот шестьдесят два рубля 24846307 - двадцать четыре миллиона восемьсот сорок шесть тысяч триста семь рублей 291933615 - двести девяносто один миллион девятьсот тридцать три тысячи шестьсот пятнадцать рублей 85413069 - восемьдесят пять миллионов четыреста тринадцать тысяч шестьдесят девять рублей 327325018 - триста двадцать семь миллионов триста двадцать пять тысяч восемнадцать рублей 287785037 - двести восемьдесят семь миллионов семьсот восемьдесят пять тысяч тридцать семь рублей 214493740 - двести четырнадцать миллионов четыреста девяносто три тысячи семьсот сорок рублей 104802943 - сто четыре миллиона восемьсот две тысячи девятьсот сорок три рубля 76198088 - семьдесят шесть миллионов сто девяносто восемь тысяч восемьдесят восемь рублей 111376171 - сто одиннадцать миллионов триста семьдесят шесть тысяч сто семьдесят один рубль 158571876 - сто пятьдесят восемь миллионов пятьсот семьдесят одна тысяча восемьсот семьдесят шесть рублей 57743365 - пятьдесят семь миллионов семьсот сорок три тысячи триста шестьдесят пять рублей 230396818 - двести тридцать миллионов триста девяносто шесть тысяч восемьсот восемнадцать рублей 53690208 - пятьдесят три миллиона шестьсот девяносто тысяч двести восемь рублей 209380780 - двести девять миллионов триста восемьдесят тысяч семьсот восемьдесят рублей 43711465 - сорок три миллиона семьсот одиннадцать тысяч четыреста шестьдесят пять рублей 43627829 - сорок три миллиона шестьсот двадцать семь тысяч восемьсот двадцать девять рублей 164306581 - сто шестьдесят четыре миллиона триста шесть тысяч пятьсот восемьдесят один рубль 117694410 - сто семнадцать миллионов шестьсот девяносто четыре тысячи четыреста десять рублей 25402657 - двадцать пять миллионов четыреста две тысячи шестьсот пятьдесят семь рублей 6305439 - шесть миллионов триста пять тысяч четыреста тридцать девять рублей 113198925 - сто тринадцать миллионов сто девяносто восемь тысяч девятьсот двадцать пять рублей 33688820 - тридцать три миллиона шестьсот восемьдесят восемь тысяч восемьсот двадцать рублей 66282663 - шестьдесят шесть миллионов двести восемьдесят две тысячи шестьсот шестьдесят три рубля 18291988 - восемнадцать миллионов двести девяносто одна тысяча девятьсот восемьдесят восемь рублей 96008231 - девяносто шесть миллионов восемь тысяч двести тридцать один рубль 93961946 - девяносто три миллиона девятьсот шестьдесят одна тысяча девятьсот сорок шесть рублей 34167132 - тридцать четыре миллиона сто шестьдесят семь тысяч сто тридцать два рубля 42907076 - сорок два миллиона девятьсот семь тысяч семьдесят шесть рублей 36072542 - тридцать шесть миллионов семьдесят две тысячи пятьсот сорок два рубля 52749092 - пятьдесят два миллиона семьсот сорок девять тысяч девяносто два рубля 59962836 - пятьдесят девять миллионов девятьсот шестьдесят две тысячи восемьсот тридцать шесть рублей 58370910 - пятьдесят восемь миллионов триста семьдесят тысяч девятьсот десять рублей 4267284 - четыре миллиона двести шестьдесят семь тысяч двести восемьдесят четыре рубля 51564940 - пятьдесят один миллион пятьсот шестьдесят четыре тысячи девятьсот сорок рублей 56709510 - пятьдесят шесть миллионов семьсот девять тысяч пятьсот десять рублей 25451562 - двадцать пять миллионов четыреста пятьдесят одна тысяча пятьсот шестьдесят два рубля 2920603 - два миллиона девятьсот двадцать тысяч шестьсот три рубля 33475329 - тридцать три миллиона четыреста семьдесят пять тысяч триста двадцать девять рублей 27103542 - двадцать семь миллионов сто три тысячи пятьсот сорок два рубля 19894354 - девятнадцать миллионов восемьсот девяносто четыре тысячи триста пятьдесят четыре рубля 17591564 - семнадцать миллионов пятьсот девяносто одна тысяча пятьсот шестьдесят четыре рубля 22700500 - двадцать два миллиона семьсот тысяч пятьсот рублей 13082519 - тринадцать миллионов восемьдесят две тысячи пятьсот девятнадцать рублей 7977737 - семь миллионов девятьсот семьдесят семь тысяч семьсот тридцать семь рублей 14752857 - четырнадцать миллионов семьсот пятьдесят две тысячи восемьсот пятьдесят семь рублей 25381617 - двадцать пять миллионов триста восемьдесят одна тысяча шестьсот семнадцать рублей 1439652 - один миллион четыреста тридцать девять тысяч шестьсот пятьдесят два рубля 3957782 - три миллиона девятьсот пятьдесят семь тысяч семьсот восемьдесят два рубля 13642164 - тринадцать миллионов шестьсот сорок две тысячи сто шестьдесят четыре рубля 1889661 - один миллион восемьсот восемьдесят девять тысяч шестьсот шестьдесят один рубль 1151969 - один миллион сто пятьдесят одна тысяча девятьсот шестьдесят девять рублей 16533543 - шестнадцать миллионов пятьсот тридцать три тысячи пятьсот сорок три рубля 5628058 - пять миллионов шестьсот двадцать восемь тысяч пятьдесят восемь рублей 9381104 - девять миллионов триста восемьдесят одна тысяча сто четыре рубля 4738698 - четыре миллиона семьсот тридцать восемь тысяч шестьсот девяносто восемь рублей 10058065 - десять миллионов пятьдесят восемь тысяч шестьдесят пять рублей 9741458 - девять миллионов семьсот сорок одна тысяча четыреста пятьдесят восемь рублей 8369331 - восемь миллионов триста шестьдесят девять тысяч триста тридцать один рубль 5669875 - пять миллионов шестьсот шестьдесят девять тысяч восемьсот семьдесят пять рублей 5860912 - пять миллионов восемьсот шестьдесят тысяч девятьсот двенадцать рублей 7617221 - семь миллионов шестьсот семнадцать тысяч двести двадцать один рубль 2288271 - два миллиона двести восемьдесят восемь тысяч двести семьдесят один рубль 2578193 - два миллиона пятьсот семьдесят восемь тысяч сто девяносто три рубля 5793226 - пять миллионов семьсот девяносто три тысячи двести двадцать шесть рублей 6941660 - шесть миллионов девятьсот сорок одна тысяча шестьсот шестьдесят рублей 3671625 - три миллиона шестьсот семьдесят одна тысяча шестьсот двадцать пять рублей 5357137 - пять миллионов триста пятьдесят семь тысяч сто тридцать семь рублей 4058869 - четыре миллиона пятьдесят восемь тысяч восемьсот шестьдесят девять рублей 5101412 - пять миллионов сто одна тысяча четыреста двенадцать рублей 3552257 - три миллиона пятьсот пятьдесят две тысячи двести пятьдесят семь рублей 2978997 - два миллиона девятьсот семьдесят восемь тысяч девятьсот девяносто семь рублей 3943539 - три миллиона девятьсот сорок три тысячи пятьсот тридцать девять рублей 2715951 - два миллиона семьсот пятнадцать тысяч девятьсот пятьдесят один рубль 3864611 - три миллиона восемьсот шестьдесят четыре тысячи шестьсот одиннадцать рублей 1163887 - один миллион сто шестьдесят три тысячи восемьсот восемьдесят семь рублей 1098364 - один миллион девяносто восемь тысяч триста шестьдесят четыре рубля 1756897 - один миллион семьсот пятьдесят шесть тысяч восемьсот девяносто семь рублей 262813 - двести шестьдесят две тысячи восемьсот тринадцать рублей 439139 - четыреста тридцать девять тысяч сто тридцать девять рублей 735575 - семьсот тридцать пять тысяч пятьсот семьдесят пять рублей 61043 - шестьдесят одна тысяча сорок три рубля 1704631 - один миллион семьсот четыре тысячи шестьсот тридцать один рубль 1290951 - один миллион двести девяносто тысяч девятьсот пятьдесят один рубль 1913557 - один миллион девятьсот тринадцать тысяч пятьсот пятьдесят семь рублей 1977138 - один миллион девятьсот семьдесят семь тысяч сто тридцать восемь рублей 1155563 - один миллион сто пятьдесят пять тысяч пятьсот шестьдесят три рубля 1202733 - один миллион двести две тысячи семьсот тридцать три рубля 992016 - девятьсот девяносто две тысячи шестнадцать рублей 735918 - семьсот тридцать пять тысяч девятьсот восемнадцать рублей 278329 - двести семьдесят восемь тысяч триста двадцать девять рублей 1065814 - один миллион шестьдесят пять тысяч восемьсот четырнадцать рублей 727205 - семьсот двадцать семь тысяч двести пять рублей 661723 - шестьсот шестьдесят одна тысяча семьсот двадцать три рубля 455052 - четыреста пятьдесят пять тысяч пятьдесят два рубля 985301 - девятьсот восемьдесят пять тысяч триста один рубль 656471 - шестьсот пятьдесят шесть тысяч четыреста семьдесят один рубль 92236 - девяносто две тысячи двести тридцать шесть рублей 77874 - семьдесят семь тысяч восемьсот семьдесят четыре рубля 191045 - сто девяносто одна тысяча сорок пять рублей 91259 - девяносто одна тысяча двести пятьдесят девять рублей 360358 - триста шестьдесят тысяч триста пятьдесят восемь рублей 528642 - пятьсот двадцать восемь тысяч шестьсот сорок два рубля 478057 - четыреста семьдесят восемь тысяч пятьдесят семь рублей 178038 - сто семьдесят восемь тысяч тридцать восемь рублей 412700 - четыреста двенадцать тысяч семьсот рублей 389220 - триста восемьдесят девять тысяч двести двадцать рублей 293053 - двести девяносто три тысячи пятьдесят три рубля 257136 - двести пятьдесят семь тысяч сто тридцать шесть рублей 161119 - сто шестьдесят одна тысяча сто девятнадцать рублей 360826 - триста шестьдесят тысяч восемьсот двадцать шесть рублей 27372 - двадцать семь тысяч триста семьдесят два рубля 270582 - двести семьдесят тысяч пятьсот восемьдесят два рубля 134063 - сто тридцать четыре тысячи шестьдесят три рубля 139733 - сто тридцать девять тысяч семьсот тридцать три рубля 175728 - сто семьдесят пять тысяч семьсот двадцать восемь рублей 44485 - сорок четыре тысячи четыреста восемьдесят пять рублей 215502 - двести пятнадцать тысяч пятьсот два рубля 10887 - десять тысяч восемьсот восемьдесят семь рублей 90830 - девяносто тысяч восемьсот тридцать рублей 14565 - четырнадцать тысяч пятьсот шестьдесят пять рублей 168819 - сто шестьдесят восемь тысяч восемьсот девятнадцать рублей 159623 - сто пятьдесят девять тысяч шестьсот двадцать три рубля 138291 - сто тридцать восемь тысяч двести девяносто один рубль 4795 - четыре тысячи семьсот девяносто пять рублей 23503 - двадцать три тысячи пятьсот три рубля 49376 - сорок девять тысяч триста семьдесят шесть рублей 32876 - тридцать две тысячи восемьсот семьдесят шесть рублей 65908 - шестьдесят пять тысяч девятьсот восемь рублей 87474 - восемьдесят семь тысяч четыреста семьдесят четыре рубля 14339 - четырнадцать тысяч триста тридцать девять рублей 83882 - восемьдесят три тысячи восемьсот восемьдесят два рубля 20521 - двадцать тысяч пятьсот двадцать один рубль 76925 - семьдесят шесть тысяч девятьсот двадцать пять рублей 31187 - тридцать одна тысяча сто восемьдесят семь рублей 9436 - девять тысяч четыреста тридцать шесть рублей 50028 - пятьдесят тысяч двадцать восемь рублей 52954 - пятьдесят две тысячи девятьсот пятьдесят четыре рубля 44357 - сорок четыре тысячи триста пятьдесят семь рублей 18209 - восемнадцать тысяч двести девять рублей 41806 - сорок одна тысяча восемьсот шесть рублей 24732 - двадцать четыре тысячи семьсот тридцать два рубля 31467 - тридцать одна тысяча четыреста шестьдесят семь рублей 13686 - тринадцать тысяч шестьсот восемьдесят шесть рублей 12600 - двенадцать тысяч шестьсот рублей 10021 - десять тысяч двадцать один рубль 14360 - четырнадцать тысяч триста шестьдесят рублей 22902 - двадцать две тысячи девятьсот два рубля 17918 - семнадцать тысяч девятьсот восемнадцать рублей 20260 - двадцать тысяч двести шестьдесят рублей 6096 - шесть тысяч девяносто шесть рублей 9080 - девять тысяч восемьдесят рублей 16835 - шестнадцать тысяч восемьсот тридцать пять рублей 4157 - четыре тысячи сто пятьдесят семь рублей 7898 - семь тысяч восемьсот девяносто восемь рублей 14333 - четырнадцать тысяч триста тридцать три рубля 11138 - одиннадцать тысяч сто тридцать восемь рублей 842 - восемьсот сорок два рубля 7781 - семь тысяч семьсот восемьдесят один рубль 13031 - тринадцать тысяч тридцать один рубль 2789 - две тысячи семьсот восемьдесят девять рублей 9186 - девять тысяч сто восемьдесят шесть рублей 6916 - шесть тысяч девятьсот шестнадцать рублей 3923 - три тысячи девятьсот двадцать три рубля 364 - триста шестьдесят четыре рубля 5159 - пять тысяч сто пятьдесят девять рублей 3851 - три тысячи восемьсот пятьдесят один рубль 1603 - одна тысяча шестьсот три рубля 2564 - две тысячи пятьсот шестьдесят четыре рубля 4146 - четыре тысячи сто сорок шесть рублей 2922 - две тысячи девятьсот двадцать два рубля 129 - сто двадцать девять рублей 4256 - четыре тысячи двести пятьдесят шесть рублей 4789 - четыре тысячи семьсот восемьдесят девять рублей 4508 - четыре тысячи пятьсот восемь рублей 3068 - три тысячи шестьдесят восемь рублей 3777 - три тысячи семьсот семьдесят семь рублей 414 - четыреста четырнадцать рублей 878 - восемьсот семьдесят восемь рублей 2402 - две тысячи четыреста два рубля 375 - триста семьдесят пять рублей 1071 - одна тысяча семьдесят один рубль 264 - двести шестьдесят четыре рубля 723 - семьсот двадцать три рубля 1480 - одна тысяча четыреста восемьдесят рублей 2263 - две тысячи двести шестьдесят три рубля 1822 - одна тысяча восемьсот двадцать два рубля 251 - двести пятьдесят один рубль 1282 - одна тысяча двести восемьдесят два рубля 406 - четыреста шесть рублей 1053 - одна тысяча пятьдесят три рубля 1337 - одна тысяча триста тридцать семь рублей 89 - восемьдесят девять рублей 613 - шестьсот тринадцать рублей 5 - пять рублей 265 - двести шестьдесят пять рублей 110 - сто десять рублей 632 - шестьсот тридцать два рубля 388 - триста восемьдесят восемь рублей 540 - пятьсот сорок рублей 109 - сто девять рублей 369 - триста шестьдесят девять рублей 714 - семьсот четырнадцать рублей 100 - сто рублей 460 - четыреста шестьдесят рублей 503 - пятьсот три рубля 348 - триста сорок восемь рублей 108 - сто восемь рублей 318 - триста восемнадцать рублей 185 - сто восемьдесят пять рублей 292 - двести девяносто два рубля 236 - двести тридцать шесть рублей 36 - тридцать шесть рублей 2 - два рубля 55 - пятьдесят пять рублей 92 - девяносто два рубля 192 - сто девяносто два рубля 111 - сто одиннадцать рублей 77 - семьдесят семь рублей 66 - шестьдесят шесть рублей 98 - девяносто восемь рублей 5 - пять рублей 120 - сто двадцать рублей 144 - сто сорок четыре рубля 154 - сто пятьдесят четыре рубля 98 - девяносто восемь рублей 56 - пятьдесят шесть рублей 105 - сто пять рублей 74 - семьдесят четыре рубля 40 - сорок рублей 46 - сорок шесть рублей 100 - сто рублей 91 - девяносто один рубль 66 - шестьдесят шесть рублей 57 - пятьдесят семь рублей 73 - семьдесят три рубля 65 - шестьдесят пять рублей 41 - сорок один рубль 12 - двенадцать рублей 9 - девять рублей 48 - сорок восемь рублей 17 - семнадцать рублей 43 - сорок три рубля 31 - тридцать один рубль 9 - девять рублей 38 - тридцать восемь рублей 0 - ноль рублей 11 - одиннадцать рублей 16 - шестнадцать рублей 4 - четыре рубля 4 - четыре рубля 15 - пятнадцать рублей 17 - семнадцать рублей 22 - двадцать два рубля 21 - двадцать один рубль 0 - ноль рублей 0 - ноль рублей 1 - один рубль 4 - четыре рубля 10 - десять рублей 12 - двенадцать рублей 7 - семь рублей 10 - десять рублей 7 - семь рублей 6 - шесть рублей 10 - десять рублей 0 - ноль рублей 8 - восемь рублей 1 - один рубль 6 - шесть рублей 0 - ноль рублей 6 - шесть рублей 0 - ноль рублей 3 - три рубля 4 - четыре рубля 1 - один рубль 2 - два рубля 0 - ноль рублей 0 - ноль рублей 2 - два рубля 3 - три рубля 3 - три рубля 0 - ноль рублей 0 - ноль рублей 2 - два рубля 0 - ноль рублей 2 - два рубля 1 - один рубль 0 - ноль рублей 2 - два рубля 0 - ноль рублей 0 - ноль рублей 0 - ноль рублей