@ 2017-07-20T21:35:04Z <?php
// Staring straight up into the sky ... oh my my
error_reporting(-1);
mb_internal_encoding('utf-8');
/* Возвращает соответствующую числу форму слова: 1 рубль, 2 рубля, 5 рублей */
function inclineWord($number, $key) {
$formsOfWords = array(
0 => array("рубль", "рубля", "рублей"),
1 => array("тысяча", "тысячи", "тысяч"),
2 => array("миллион", "миллиона", "миллионов")
);
$number = $number % 10;
if ($number >= 11 && $number <= 14){
return $formsOfWords[$key][2];
}if ($number == 1){
return $formsOfWords[$key][0];
} elseif ($number > 1 && $number < 5) {
return $formsOfWords[$key][1];
} else {
return $formsOfWords[$key][2];
}
}
/*
Преобразует числа от 0 до 999 в текст. Параметр $isFemale равен нулю,
если мы считаем число для мужского рода (один рубль),
и 1 — для женского (одна тысяча)
*/
function smallNumberToText($number, $isFemale) {
$spelling = array(
0 => 'ноль',
1 => 'один',
2 => 'два',
3 => 'три',
4 => 'четыре',
5 => 'пять',
6 => 'шесть',
7 => 'семь',
8 => 'восемь',
9 => 'девять',
10 => 'десять',
11 => 'одиннадцать',
12 => 'двенадцать',
13 => 'тринадцать',
14 => 'четырнадцать',
15 => 'пятнадцать',
16 => 'шестнадцать',
17 => 'семнадцать',
18 => 'восемнадцать',
19 => 'девятнадцать',
20 => 'двадцать',
30 => 'тридцать',
40 => 'сорок',
50 => 'пятьдесят',
60 => 'шестьдесят',
70 => 'семьдесят',
80 => 'восемьдесят',
90 => 'девяносто',
100 => 'сто',
200 => 'двести',
300 => 'триста',
400 => 'четыреста',
500 => 'пятьсот',
600 => 'шестьсот',
700 => 'семьсот',
800 => 'восемьсот',
900 => 'девятьсот'
);
$femaleSpelling = array(
1 => 'одна', 2 => 'две'
);
$digitsByWord = "";
if ($number == 0){
return $spelling[0].' ';
}
if ($number >= 100){
$digits = floor($number / 100) * 100;
$digitsByWord = $spelling[$digits].' ';
$number = $number % 100;
}
if ($number > 9 && $number <20){
$digitsByWord = $digitsByWord.$spelling[$number].' ';
return $digitsByWord;
}
if ($number > 19){
$digits = floor($number / 10) * 10;
$digitsByWord = $digitsByWord.$spelling[$digits].' ';
$number = $number % 10;
}
if ($number > 0){
if ($isFemale == 1 && $number == 1){
$digitsByWord = $digitsByWord.$femaleSpelling[1].' ';
} elseif ($isFemale == 1 && $number == 2) {
$digitsByWord = $digitsByWord.$femaleSpelling[2].' ';
} else {
$digitsByWord = $digitsByWord.$spelling[$number].' ';
}
}
return $digitsByWord;
}
function numberToText($number) {
for ($i = 0; $i < 3; $i++){
$threeDigits[$i] = $number % 1000;
$number =floor($number / 1000);
}
$threeDigitsWords = array();
foreach ($threeDigits as $key => $value) {
if ($value == 0 && $key != 0){
continue;
}
if ($key == 1){
$isFemale = 1;
} else {
$isFemale = 0;
}
$threeDigitsWords[$key] = smallNumberToText($value, $isFemale);
$threeDigitsWords[$key] = $threeDigitsWords[$key].inclineWord($value, $key);
}
$threeDigitsWords = array_reverse($threeDigitsWords);
return implode(" ", $threeDigitsWords);
}
$amount1 = mt_rand(1,999999999);
echo $amount1, "\n";
$text1 = numberToText($amount1);
echo "На вашем счету {$text1}\n";
$amount2 = mt_rand(1,999999999);
echo $amount2, "\n";
$text2 = numberToText($amount2);
echo "На вашем счету {$text2}\n";
$amount3 = mt_rand(1,999999999);
echo $amount3, "\n";
$text3 = numberToText($amount3);
echo "На вашем счету {$text3}\n";
$amount4 = mt_rand(1,999999999);
echo $amount4, "\n";
$text4 = numberToText($amount4);
echo "На вашем счету {$text4}\n";
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version System time (s) User time (s) Memory (MiB) 7.3.1 0.002 0.011 16.44 7.3.0 0.004 0.010 16.69 7.2.13 0.007 0.007 16.96 7.2.12 0.011 0.005 16.96 7.2.11 0.007 0.008 16.89 7.2.10 0.007 0.005 16.99 7.2.9 0.007 0.010 16.93 7.2.8 0.005 0.011 16.91 7.2.7 0.007 0.007 16.88 7.2.6 0.009 0.007 16.95 7.2.5 0.010 0.006 16.96 7.2.4 0.009 0.009 17.01 7.2.3 0.011 0.003 17.04 7.2.2 0.008 0.006 17.04 7.2.1 0.010 0.006 16.81 7.2.0 0.009 0.006 16.96 7.1.25 0.007 0.007 15.84 7.1.7 0.000 0.017 17.06 7.1.6 0.041 0.008 34.84 7.1.5 0.028 0.008 34.97 7.1.4 0.029 0.010 34.32 7.1.3 0.023 0.013 34.46 7.1.2 0.020 0.018 34.73 7.1.1 0.012 0.010 16.65 7.1.0 0.012 0.006 16.67 7.0.20 0.004 0.013 16.74 7.0.19 0.013 0.006 16.52 7.0.18 0.006 0.012 16.30 7.0.17 0.006 0.009 16.25 7.0.16 0.009 0.014 16.18 7.0.15 0.003 0.020 16.21 7.0.14 0.011 0.006 16.38 7.0.13 0.013 0.010 16.73 7.0.12 0.013 0.008 16.55 7.0.11 0.013 0.006 16.41 7.0.10 0.011 0.008 16.55 7.0.9 0.009 0.012 16.42 7.0.8 0.009 0.012 16.51 7.0.7 0.009 0.012 16.30 7.0.6 0.012 0.006 16.21 7.0.5 0.003 0.012 16.41 7.0.4 0.009 0.006 16.41 7.0.3 0.005 0.010 16.57 7.0.2 0.364 0.020 16.40 7.0.1 0.006 0.017 16.51 7.0.0 0.006 0.014 16.51
preferences:dark mode live preview
35.53 ms | 401 KiB | 5 Q