Author Topic: Как проверить - четное число, или нет?  (Read 2985 times)

0 Members and 1 Guest are viewing this topic.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
$number=$number/2
Как проверить - $number целым числом стал, или нет?
???
« Last Edit: June 28, 2018, 12:56:41 PM by Hito »
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Как проверить - четное число, или нет?
« Reply #1 on: June 28, 2018, 01:19:21 PM »
Code: (clickermann) [Select]
$a=9
$b=$a/2
IF(STRPOS($b,".")>0)
   LOGWRITE ($a," - не четное число")
END_IF

Как-то покрасивее это можно вычислить?
« Last Edit: June 28, 2018, 01:24:59 PM by Hito »
Я не ду... Потому и не бу...

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
Re: Как проверить - четное число, или нет?
« Reply #2 on: June 28, 2018, 01:27:23 PM »
Ответ по названию темы.
Code: (clickermann) [Select]
IF($number/2=INT($number/2))
   PRINT("Чет")
ELSE
   PRINT("Нечет")
END_IF

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
Re: Как проверить - четное число, или нет?
« Reply #3 on: June 28, 2018, 01:30:14 PM »
А это по вопросу в первом посте
Code: (clickermann) [Select]
IF($number=ROUND($number,0))
   PRINT("Целое")
ELSE
   PRINT("Нет")
END_IF
P.S. Не путайте целые и четные числа.
« Last Edit: June 28, 2018, 01:38:42 PM by open_78 »

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Как проверить - четное число, или нет?
« Reply #4 on: June 28, 2018, 01:42:06 PM »
Ответ по названию темы.
Code: (clickermann) [Select]
IF($number/2=INT($number/2))
   PRINT("Чет")
ELSE
   PRINT("Нечет")
END_IF
Норм!
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Как проверить - четное число, или нет?
« Reply #5 on: June 28, 2018, 01:45:37 PM »
P.S. Не путайте целые и четные числа.
Тут как бы просто одно из другого вытекает )
Я не ду... Потому и не бу...

Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
Re: Как проверить - четное число, или нет?
« Reply #6 on: June 29, 2018, 04:27:51 PM »
более быстрый код через битовые операции
Code: (clickermann) [Select]
$var = rnd(1, 9999)

$is_odd = $var and 1

if($is_odd == 1)
  print($var, " нечетное")
else 
  print($var, " четное")
end_if 

waitms(100)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Как проверить - четное число, или нет?
« Reply #7 on: June 29, 2018, 06:41:16 PM »
Меньше строк, еше быстрее  :D

Code: (clickermann) [Select]
$number=$number/2
if($number and 1 = 1)
   print($number, " нечетное")
else
   print($number, " четное")
end_if

Атеист

  • Guest
Re: Как проверить - четное число, или нет?
« Reply #8 on: June 29, 2018, 07:15:15 PM »
Без лишних операций сравнения будет работать еще быстрее.
Например, запись if($number and 1 = 1) ... Зачем сравнивать логическое выражение  еще с чем то? Оно итак вернет ложь или истину, без доп сравнений. Понятно, что такая запись наглядней. Но if($number and 1) будет работать быстрее чем if($number and 1 = 1).

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Как проверить - четное число, или нет?
« Reply #9 on: June 29, 2018, 08:27:05 PM »
Че-то пошли какие-то функции, которые я первый раз вижу... ))
Я не ду... Потому и не бу...


Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Как проверить - четное число, или нет?
« Reply #11 on: June 29, 2018, 08:56:14 PM »
http://crapware.aidf.org/forum/index.php?topic=1134.0
Ох... Как это все сейчас для меня сложно...
Я не ду... Потому и не бу...