Как присвоить переменной только целое нечетное число?

FM
На сайте с 25.08.2010
Offline
69
1047

Добрый день. Вот такой вопрос возник. Я не программист, но нужно в скрипте подправить, что бы переменной присваивалось только целое нечетное число.

Вот мой пример:

$num=(int) (60 / 30);

Не знаю как прикрутить ($t % 2) == 0 к моему примеру.

Спасибо за помощь.

siv1987
На сайте с 02.04.2009
Offline
427
#1

$i=1;

$i+2;

if( $t % 2 )

{

echo "Нечетное число {$t}<br />";

}

FM
На сайте с 25.08.2010
Offline
69
#2
siv1987:
$i=1;
$i+2;

if( $t % 2 )
{
echo "Нечетное число {$t}<br />";
}

Спасибо за ответ. Но я так и не понял как это реализовать. :o

$num=(int) ($t / 30); Мне необходимо, что бы переменная $num была только нечетной. Допустим ($t / 30) выйдет 50. Мне нужно либо 49, либо 51.

дани мапов
На сайте с 06.09.2012
Offline
204
#3

$res = $t / 30;

if ($res % 2)

{

$num = intval($res);

}

Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
siv1987
На сайте с 02.04.2009
Offline
427
#4


$res = 50;
if( is_integer($res/2) )
{
$res = $res +1;
}
echo $res;
дани мапов
На сайте с 06.09.2012
Offline
204
#5

ну или так:

$res = $t / 30;

if ($res % 2) $num = intval($res);

siv1987
На сайте с 02.04.2009
Offline
427
#6

$num = intval( 60/30 );

$num = ( $num % 2 ) ? $num : $num +1;

FM
На сайте с 25.08.2010
Offline
69
#7

Вариант от siv1987 сработал. Второй не получилось, может я чего не так сделал. Нужно поднимать свои знания PHP, а то совсем плаваю. Спасибо большое всем.😂

C
На сайте с 04.02.2005
Offline
291
#8

$num_rand = rand(0,10) ;

$cnum = ceil($num_rand / 2);

$num = $cnum + ($cnum % 2) +1 ;

Himiko
На сайте с 28.08.2008
Offline
560
#9

Я не программист, но судя по логике:

Получаем случайное число и если оно делится без остатка на 2, то прибавляем к нему единицу. Если результат больше верхнего значения (выходит за предельно допустиое число), то отнимаем единицу.

Полагаю, что такое реализуемо на любом языке.

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
C
На сайте с 04.02.2005
Offline
291
#10
Chukcha:
$num_rand = rand(0,10) ;
$cnum = ceil($num_rand / 2);
$num = $cnum + ($cnum % 2) +1 ;

Есть один маленький нюанс такого решения...

Сопровождение такого кода в будущем другим разработчиком, он может сломать мозг -зачем ЭТО?

Правильное решение приблизительно такое

$num_rand = rand(0,10) ;

$cnum = ceil($num_rand / 2);
//Получаем ТОЛЬКО нечетное
$num = $cnum + ($cnum % 2) +1 ;

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий