Учебные задачи PHP. Задача 6

Список учебных задач PHP здесь

Условие: Дано некоторое число длиной от 1 до 5 символов, вывести все его "нечётные" цифры в обратном порядке (аналогично предыдущей задаче - "используйте цикл while и операцию получения остатка"), если же таких цифр не найдёт, вывести сообщение "Нечетных цифр не обнаружено!"

Нужна помощь. Не могу понять, как заставить скрипт выводить сообщение "Нечетных цифр не обнаружено!"

<?php
$num = rand(1,99999);
$count = strlen($num);

$i = 1;
while ($i <= $count) { // $count применяем в качестве ограничителя по количеству интераций
	$edgeValue = $num % 10; // находим крайнее число - остаток от деления на 10
	if ($edgeValue % 2 != 0) { // если остаток от деления на 2 не равен нулю, то...
		echo $edgeValue, '<br>';
	}
	$num /= 10; // число для следующей итерации
	$i++;
}
?>

Key Words for FKN + antitotal forum (CS VSU):

vedro-compota's picture

Не могу понять, как заставить скрипт выводить сообщение "Нечетных цифр не обнаружено!"

ну а в какой ситуации они могут быть не обнаружены?

_____________
матфак вгу и остальная классика =)

rvsokolov's picture

Вероятно, если остаток от деления каждого числа будет равен нулю?

Если я мыслю в правильном ключе, подскажите,
как это можно реализовать? я пробовал if-else,
но это не работает как нужно:

<?php
$num = rand(1,99999);
$count = strlen($num);
 
$i = 1;
while ($i <= $count) { // $count применяем в качестве ограничителя по количеству итераций
    $edgeValue = $num % 10; // находим крайнее число - остаток от деления на 10
    if ($edgeValue % 2 != 0) { // если остаток от деления на 2 не равен нулю, то...
        echo $edgeValue, '<br>';
    } elseif ($edgeValue % 2 == 0) {
		echo 'Нечетных цифр не обнаружено! <br>';
	}
    $num /= 10; // число для следующей итерации
    $i++;
}
?>
vedro-compota's picture

Вероятно, если остаток от деления каждого числа будет равен нулю?

а если, например, 4-ём?)) Т.е. на самом деле вообще любому четному числу, напр. в чеисл 2468 нечетный цифр действительно нет.
Если нечетных цифр не обнаружено, то значит их количество просто равно нулю, а чтобы узнать чему равно их количество надо его посчитать)

_____________
матфак вгу и остальная классика =)

rvsokolov's picture

Новое решение

<?php
$num = rand(0,99999);
$i = 0;

while ($num >= 1) {
	$edgeValue = $num % 10;
	$num /= 10;
	if ($edgeValue % 2 != 0) {
		echo $edgeValue, '<br>';
		$i++;
	}
}
if ($i == 0) {
	echo 'Нечетных чисел не обнаружено!';
}
?>
vedro-compota's picture

решение засчитано.

_____________
матфак вгу и остальная классика =)