Учебные задачи PHP. Задача 6
Primary tabs
Решение для задачи из списка
<?php
/**
* Решение для задачи №6 из курса PHP
*
* Дано некоторое число длиной от 1 до 5 символов,
* вывести все его "нечётные" цифры в обратном порядке (аналогично предыдущей задаче),
* если же таких цифр не найдёт, вывести сообщение "Нечетных цифр не обнаружено!"
*/
$num = rand(1, 99999);// Получаем исходное число
$res = reversOddNumber($num);// Получение результата работы функции
echo $num." =<br>".$res;
function reversOddNumber($int) {
// На вход подаётся число, на выходе строка
$out = [];
$iteration = strlen($int);
$odd = 0;//счётчик нечётных чисел
while($iteration != 0){//получаем массив заполненный цифрами числа в обратном порядке
$out[] = $int % 10;
$int /= 10;
$iteration--;
}
foreach($out as $i => $value){//перебор массива
if(($value % 2) != 0){
$odd++;//считаем нечётные числа
continue;
}else{
unset($out[$i]);// удаляем чётные числа
}
}
if($odd == 0){
$out = 'Нечётных цифр не обнаруженно';
}else{
$out = implode('<br>', $out);
}
return $out;
}
?>
- Log in to post comments
- 3792 reads
vedro-compota
Sat, 09/07/2019 - 15:09
Permalink
Приведите ниже альтернативное
Приведите ниже альтернативное решение без массива и без использования strlen($int), попробуйте поработать со значением чисто как с числом.
_____________
матфак вгу и остальная классика =)
toyrik
Sat, 09/07/2019 - 21:14
Permalink
Нашёл вот такое решение
<?php /** * Решение для задачи №6 из курса PHP * * Дано некоторое число длиной от 1 до 5 символов, * вывести все его "нечётные" цифры в обратном порядке (аналогично предыдущей задаче), * если же таких цифр не найдёт, вывести сообщение "Нечетных цифр не обнаружено!" * * UPD Приведите альтернативное решение без массива и без использования strlen($int), * попробуйте поработать со значением чисто как с числом. */ $num = rand(1, 99999);// Получаем исходное число echo $num." =<br>"; reverseOddNumber($num); function reverseOddNumber($int) { $odd = 0;// Счетчик нечётных цифр while ($int > 1) { if ((($int % 10) % 2) != 0) { echo $int % 10; $odd++; } $int /=10; } if ($odd == 0) { echo 'Нечётных цифр не обнаружено'; } } ?>vedro-compota
Mon, 09/16/2019 - 22:20
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)