Исходное сообщение Мурэйкер: Насчёт проверки чётности... Не проще ли проверять - делится ли число на 2?
Исходное сообщение Hadgehogs: <Учитывая, что разрядность компьютера ограничена>
Если хранящая переменная строго типизирована. Мы с тобой уже рассматривали разрядности переменных 1С 8.0, не хранящихся в базе.
<для 8, К = 13.5, не делится на 3, четное > справедливо только для бесконечной периодической дроби.
Не канает, ибо
13,5/3=4,5
4,5*3=13,5
1С округлит, и скажет - равны, а Дельфи- нет :-)
Исходное сообщение fixinКАК?А как ты проверяешь что на 3 делится? Также и на 2.
Исходное сообщение Мурэйкер: если (x/2) = ЦЕЛОЕ(х/2)
Исходное сообщение DKA:Исходное сообщение fixinКАК?А как ты проверяешь что на 3 делится? Также и на 2.
А как проверить, делится ли число на 3? Учитывая, что разрядность компьютера ограничена, мы сначала делим Х на 3, а затем умножаем на 3, получаем К. Если К = Х, то число делится на 3, иначе не делится.
Исходное сообщение snakeye:А как проверить, делится ли число на 3? Учитывая, что разрядность компьютера ограничена, мы сначала делим Х на 3, а затем умножаем на 3, получаем К. Если К = Х, то число делится на 3, иначе не делится.
А как проверить, делится ли число на 2? Учитывая, что разрядность компьютера ограничена, мы сначала делим Х на 2, а затем умножаем на 2, получаем К. Если К = Х, то число делится на 2, иначе не делится.
И стоило огород городить?
Исходное сообщение snakeye: Гым, пожалста. Если переменные целые (а понятие чётности применимо только к целым числам), то
4 / 2 = 2; 2 * 2 = 4; 4 = 4
5 / 2 = 2; 2 * 2 = 4; 5 != 5
Ещё, как вариант, можно проверить остаток от деления на два:
4 % 2 = 0;
5 % 2 = 1;
Ещё, в совсем отмороженном случае, можно просто последний бит проверить
4 & 1 = 0;
5 & 1 = 1;
Исходное сообщение snakeye: Гым, пожалста. Если переменные целые (а понятие чётности применимо только к целым числам), то
4 / 2 = 2; 2 * 2 = 4; 4 = 4
5 / 2 = 2; 2 * 2 = 4; 5 != 5
Ещё, как вариант, можно проверить остаток от деления на два:
4 % 2 = 0;
5 % 2 = 1;
Ещё, в совсем отмороженном случае, можно просто последний бит проверить
4 & 1 = 0;
5 & 1 = 1;
Исходное сообщение snakeye: Тогда первый вариант. Можно ещё в цикле двойку вычитать, пока результат больше двух. Это дольше, но тогда даже деление с умножением не нужны.