Повторение: перебор данных
Часть раздела Основы путешествия по PHP на Coddy. Урок 53 из 71.
Задание
ЛегкоПрочитайте три строки ввода:
- Список целых чисел, разделённых запятыми (например,
12,5,8,20,3,15,7) - Минимальное значение threshold
- Максимальное значение threshold
Обработайте array, чтобы найти sum всех numbers, попадающих в range (включая оба значения — minimum и maximum). Сначала проверьте, является ли number exactly double maximum threshold, и если да, немедленно остановитесь с помощью break. В противном случае используйте continue, чтобы пропустить numbers за пределами range.
Первая строка считывается с помощью explode, поэтому $numbers содержит strings, а $min и $max являются integers. Преобразуйте каждый элемент с помощью intval() (или приведения (int)) перед сравнением с thresholds или добавлением к sum.
Выведите две строки:
- Sum valid numbers в пределах range
- Количество numbers, которые были добавлены к sum
Пример 1:
Если входные данные: 5,12,8,20,15,3,10, 5 и 15, вывод должен быть таким:
50
5(5 + 12 + 8 + 15 + 10 = 50, пять numbers находятся в range 5-15)
Пример 2:
Если входные данные: 2,8,12,20,6,14, 5 и 10, вывод должен быть таким:
8
1(Обработка останавливается на 20, потому что это double maximum 10; до этой точки был добавлен только 8, поэтому sum равен 8, а count — 1)
Пример 3:
Если входные данные: 1,2,3,4,5, 10 и 20, вывод должен быть таким:
0
0(Ни один number не попадает в range 10-20)
Попробуйте сами
<?php
// Прочитать ввод
$numbers = explode(',', trim(fgets(STDIN)));
$min = intval(trim(fgets(STDIN)));
$max = intval(trim(fgets(STDIN)));
// Инициализировать переменные
$sum = 0;
$count = 0;
// TODO: Напишите ваш код здесь
// Пройти циклом по массиву numbers
// Используйте 'continue', чтобы пропускать числа вне диапазона (от min до max включительно)
// Используйте 'break', если встретите число, точно вдвое большее максимального порога
// Отслеживайте сумму и количество допустимых чисел
// Вывести результаты
echo $sum . "\n";
echo $count;
?>Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравненияРавенство и идентичностьЛогические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логика2Переменные и типы данных
ЧислаСтроки и кавычкиБулевы значенияСоглашения об именованииПовторение — инициализация переменныхПустые переменныеКонкатенация строкПолучение пользовательского вводаПриведение к другим типам5Условная логика
Оператор ifIf — ElseТернарный операторОператор нулевого слиянияОператор switchПовторение: принятие решений8Циклы
Цикл forЦикл whileЦикл foreachПеребор по ключам и значениямОператор breakОператор continueПовторение: перебор данных3Основные операторы
Арифметические операторыОператор остатка от деленияОператор возведения в степеньСоставное присваиваниеИнкремент/декрементПриоритет операторовПовторение — простые вычисленияОператоры строкПотренируйтесь самостоятельно: Онлайн-компилятор PHP