3v4l.org

run code in 300+ PHP versions simultaneously
<?php error_reporting(-1); mb_internal_encoding('UTF-8'); $amount = 54500; $totalCash = 0; $bills = array( 5000 => 200, 1000 => 0, 500 => 5, 100 => 23 ); foreach ($bills as $faceValue => $totalNumberOfBills) { $totalCash += $faceValue * $totalNumberOfBills; } echo "Сумма: {$amount}\n"; if ($amount > $totalCash) { echo "Выдача невозможна: В банкомате отсутствует требуемая сумма.\n"; } elseif ($amount % 100 != 0) { echo "Выдача невозможна: Запрошена неверная сумма (сумма должна быть кратна 100 рублям).\n"; } elseif ($amount <= 0) { echo "Выдача невозможна: Запрошена сумма меньше или равна нуля.\n"; } else { foreach ($bills as $faceValue => $totalNumberOfBills) { /* Кол-во купюр каждого номинала исходя из запрашиваемой суммы */ $numberOfBills = floor($amount / $faceValue); /* Проверка наличия требуемого количества купюр в АТМ */ if ($numberOfBills > $totalNumberOfBills) { $numberOfBills = $totalNumberOfBills; } /* Вычитаем сумму нужных купюр и сохраняем кол-во нужных купюр в отдельный массив */ $amount -= $numberOfBills * $faceValue; $result[] = $numberOfBills; } /* Если в итоге сумма не станет равной нулю, значить в АТМ нет купюр нужного номинала */ if ($amount != 0) { echo "Выдача невозможна: В банкомате отсутствуют купюры нужного номинала."; } else { /* Если сумма равна 0, то АТМ выдает нужную сумму */ echo "Выдача возможна, число купюр:\n"; $result = array_combine($result, array_flip($bills)); foreach ($result as $key => $value) { if ($key != 0) { echo "{$key}x{$value} "; } } } }

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).

VersionSystem time (s)User time (s)Memory (MiB)
8.3.60.0110.00818.30
8.3.50.0170.00318.29
8.3.40.0090.01218.77
8.3.30.0120.00318.77
8.3.20.0080.00019.46
8.3.10.0060.00322.03
8.3.00.0050.00319.81
8.2.180.0090.00916.38
8.2.170.0110.00722.96
8.2.160.0150.00319.24
8.2.150.0000.00824.18
8.2.140.0070.00024.66
8.2.130.0050.00220.47
8.2.120.0040.00426.35
8.2.110.0070.00322.43
8.2.100.0090.00319.76
8.2.90.0000.00819.21
8.2.80.0030.00517.97
8.2.70.0050.00317.75
8.2.60.0080.00018.04
8.2.50.0030.00518.17
8.2.40.0040.00420.68
8.2.30.0040.00419.30
8.2.20.0050.00218.07
8.2.10.0040.00418.07
8.2.00.0000.00718.38
8.1.280.0140.00725.92
8.1.270.0080.00823.99
8.1.260.0070.00726.35
8.1.250.0080.00028.09
8.1.240.0060.00321.11
8.1.230.0040.00819.11
8.1.220.0080.00017.74
8.1.210.0040.00418.77
8.1.200.0040.00417.25
8.1.190.0030.00617.63
8.1.180.0050.00218.10
8.1.170.0030.00618.77
8.1.160.0040.00418.97
8.1.150.0040.00420.22
8.1.140.0050.00319.61
8.1.130.0000.00718.98
8.1.120.0040.00417.54
8.1.110.0000.00817.54
8.1.100.0040.00417.44
8.1.90.0080.00017.55
8.1.80.0040.00417.46
8.1.70.0030.00317.45
8.1.60.0030.00617.67
8.1.50.0050.00317.50
8.1.40.0040.00417.44
8.1.30.0050.00317.65
8.1.20.0050.00317.62
8.1.10.0040.00417.48
8.1.00.0040.00417.54
8.0.300.0040.00420.16
8.0.290.0040.00416.75
8.0.280.0070.00018.58
8.0.270.0030.00317.21
8.0.260.0060.00019.09
8.0.250.0070.00016.91
8.0.240.0070.00017.05
8.0.230.0020.00516.91
8.0.220.0030.00317.00
8.0.210.0000.00716.89
8.0.200.0040.00417.08
8.0.190.0080.00016.93
8.0.180.0080.00017.00
8.0.170.0050.00217.00
8.0.160.0040.00417.05
8.0.150.0030.00516.98
8.0.140.0000.00716.84
8.0.130.0030.00613.43
8.0.120.0000.00816.92
8.0.110.0040.00417.04
8.0.100.0070.00016.98
8.0.90.0040.00416.88
8.0.80.0060.00916.95
8.0.70.0040.00416.92
8.0.60.0080.00016.94
8.0.50.0040.00416.80
8.0.30.0090.00817.21
8.0.20.0100.01017.42
8.0.10.0030.00517.09
8.0.00.0130.00616.83
7.4.330.0050.00015.55
7.4.320.0040.00416.65
7.4.300.0000.00616.58
7.4.290.0040.00416.56
7.4.280.0070.00016.68
7.4.270.0050.00316.47
7.4.260.0000.00716.58
7.4.250.0040.00416.63
7.4.240.0020.00516.61
7.4.230.0000.00716.58
7.4.220.0110.00716.61
7.4.210.0050.01016.60
7.4.200.0000.00816.78
7.4.160.0090.00716.42
7.4.150.0000.01717.40
7.4.140.0130.00817.86
7.4.130.0170.00316.51
7.4.120.0090.01216.64
7.4.110.0120.00916.46
7.4.100.0090.00916.63
7.4.90.0050.01916.59
7.4.80.0170.00019.39
7.4.70.0100.00716.71
7.4.60.0030.01316.54
7.4.50.0080.00316.35
7.4.40.0130.00316.69
7.4.30.0100.00716.72
7.4.00.0110.00415.13
7.3.330.0030.00313.16
7.3.320.0050.00013.21
7.3.310.0020.00516.20
7.3.300.0070.00016.45
7.3.290.0030.00316.32
7.3.280.0080.01016.43
7.3.270.0150.00317.40
7.3.260.0120.00616.53
7.3.240.0160.00216.46
7.3.230.0120.00916.52
7.3.210.0070.01116.52
7.3.200.0070.01016.44
7.3.190.0060.01216.51
7.3.180.0090.00616.47
7.3.170.0030.01316.41
7.3.160.0120.00416.42
7.2.330.0070.01116.68
7.2.320.0170.00016.79
7.2.310.0070.01016.50
7.2.300.0100.01016.69
7.2.290.0110.00616.61
7.2.60.0070.00716.54
7.1.200.0030.00715.83
7.1.70.0050.00317.33
7.1.60.0040.00717.29
7.1.50.1030.01732.87
7.1.40.1030.01032.46
7.1.30.1430.01032.79
7.1.20.1200.01332.64
7.1.10.0870.01014.61
7.1.00.1070.01314.97
7.0.200.0000.00916.68
7.0.190.1570.00714.67
7.0.180.1100.00714.32
7.0.170.1970.01314.16
7.0.160.1270.01014.29
7.0.150.1570.01014.32
7.0.140.1130.00714.61
7.0.130.1070.01014.56
7.0.120.0930.01014.65
7.0.110.1270.01014.41
7.0.100.1000.01014.37
7.0.90.0970.00714.50
7.0.80.0830.01014.45
7.0.70.1170.01014.51
7.0.60.1600.00714.18
7.0.50.1470.01014.50
7.0.40.1600.01314.60
7.0.30.1070.00714.39
7.0.20.1300.00714.57
7.0.10.1100.01314.68
7.0.00.1070.00714.48

preferences:
68.04 ms | 401 KiB | 5 Q