Задача №6.
Primary tabs
Дано некоторое число длиной от 1 до 5 символов, вывести все его "нечётные" цифры в обратном порядке (аналогично предыдущей задаче), если же таких цифр не найдёт, вывести сообщение "Нечетных цифр не обнаружено!"
Задача из этого списка.
<?php
function an_chis($a)
{
$sum = 0;
$wsum = 0;
do{
if($a == 0) {
echo $a, "<br>";
}
elseif($a % 2 != 0) {
echo $a % 10, "<br>";
}
else {
$wsum++;//счетчик для нечетных.
}
$sum++;//счетчик итераций.
$a /= 10;
}while ($a <= -1 || $a >= 1);
if($wsum == $sum || $a == 0) {
echo "Нечетных чисел не обнаружено!";
}
}
$a = 54634328;
an_chis($a);
?>
- Log in to post comments
- 6977 reads
melisa
Sun, 07/30/2017 - 10:58
Permalink
в целом работает, но есть неточности
if($a == 0) { echo $a; }В действительности, \$wsum считает количество чётных чисел
math2
Sun, 07/30/2017 - 19:57
Permalink
Замена
if($wsum == $sum || $a == 0) { echo "Нечетных чисел не обнаружено!"; }можно заменить на
if($wsum == $sum) { echo "Нечетных чисел не обнаружено!"; }sid
Mon, 07/31/2017 - 18:27
Permalink
Исправил был немного не
Исправил был немного не внимателен, спасибо за поправку.
<?php function vivod_nechet_chisel($a) { $sum = 0; $wsum = 0; do{ if($a % 2 != 0) { echo $a % 10, "<br>"; } else { $wsum++;//счетчик для четных чисел. } $sum++;//счетчик итераций. $a /= 10; }while ($a <= -1 || $a >= 1); if($wsum == $sum) { echo "Нечетных чисел не обнаружено!"; } } $a = 141; vivod_nechet_chisel($a); ?>math2
Mon, 07/31/2017 - 21:59
Permalink
Нормально. Можно ещё
Нормально. Можно ещё упростить немного.
<?php function vivod_nechet_chisel($a) { $wsum = 0; do { if($a % 2 != 0) { echo $a % 10, "<br>"; $wsum++; // счетчик для нечётных чисел } $a /= 10; } while ($a <= -1 || $a >= 1); if ($wsum == 0) { echo "Нечетных цифр не обнаружено!<br>"; } } $a = 14293871; vivod_nechet_chisel($a); ?>sid
Tue, 08/01/2017 - 21:08
Permalink
Спасибо, сам пока не замечаю
Спасибо, сам пока не замечаю такие детали.