Замените каждый элемент произведением всех других элементов
EASY
На вход подается строка из чисел, разделенных пробелами.
Замените каждый элемент строки произведением всех других элементов.
Рассмотрим на примере строки "1 2 3".
Новое значение вместо "1" это "2 * 3 = 6". Для "2" это "1 * 3 = 3". Для "3" это "1 * 2 = 2"
Решение
<?php
$line = trim(fgets(STDIN));
$nums = explode(' ', $line);
$product = null;
$productWithoutZero = null;
$zerosCount = 0;
foreach ($nums as $i => $num) {
if ($product === null) {
$product = $num;
} else {
$product *= $num;
}
if ($num == 0) {
$zerosCount++;
continue;
}
if ($productWithoutZero === null) {
$productWithoutZero = $num;
} else {
$productWithoutZero *= $num;
}
}
if ($zerosCount > 1) {
$productWithoutZero = 0;
}
foreach ($nums as $i => $num) {
if ($num == 0) {
echo $productWithoutZero . ' ';
continue;
}
echo $product / $num . ' ';
}
Для просмотра решения нужно войти на сайт.
Тесты
Тест #1 |
Загрузка...
|
Тест #2 |
Загрузка...
|
Тест #3 |
Загрузка...
|
Тест #4 |
Загрузка...
|
Тест #5 |
Загрузка...
|
Тест #6 |
Загрузка...
|