Упражнения на PHP: найдите номер клиента, который торговал второй подряд второй месяц подряд с прошлого месяца, и количество транзакций
PHP: упражнение 70 с решением
Раздел записи компании ABC записывает номер клиента и дату торгов для каждого месяца. Напишите программу PHP, чтобы найти номер клиента, который торговал второй подряд второй месяц подряд с прошлого месяца, и количество транзакций.
Данные этого месяца и данные прошлого месяца разделены пустой строкой в одну строку и даны.
Формат транзакции:
с1, д1
с2, д2
...
...
ci (1 ≤ ci ≤ 1000) представляет собой целое число, представляющее номер клиента, di (1 ≤ di ≤ 31) представляет собой целое число, представляющее торговую дату.
Пример решения: -
PHP-код:
<?php
$x = array();
while (true) {
$a = rtrim(fgets(STDIN));
if ($a === '') {
break;
}
list($n, $d) = explode(',', $a);
if (!isset($x[$n])) {
$x[$n] = 0;
}
$x[$n]++;
}
$y = array();
while (true) {
$a = rtrim(fgets(STDIN));
if ($a === '') {
break;
}
list($n, $d) = explode(',', $a);
if (!isset($x[$n])) {
continue;
}
if (!isset($y[$n])) {
$y[$n] = $x[$n];
}
$y[$n]++;
}
echo "Customer number and the number of transactions:\n";
ksort($y);
foreach ($y as $k => $v) {
echo sprintf('%d %d', $k, $v) . PHP_EOL;
}
?>
Пример ввода:
125,10
55,12
34,14
125,3
55,4
125,5
Пример вывода:
Номер клиента и количество транзакций: 55 2 125 3
Блок - схема:
Редактор кода PHP:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите программу PHP для суммирования всех числовых значений, встроенных в предложение.
Далее: Напишите программу PHP для чтения массовых данных и определения количества островков.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования