Вот сижу и думаю как научить программу различать четные и не четные числа.
Должна быть какая то простая арифметическая последовательность результат которой будет либо 1 либо 0 (зависит от того четное первоначальное число или нет).
Перебираю варианты , но что то пока ничего.
Очень не хочется городить говнокод
что то вроде
if(a==1&&a==3&&a==5&&a==7&&a==9)
{
действие 1
}
if(a==2&&a==4&&a==6&&a==8&&a==10)
{
действие 2
}
Что подскажите ?
СКАЗОЧНИК
Отправлено: 23 Октября, 2012 - 17:14:29
Главнокомандующий
Сообщений всего: 377
Дата рег-ции: Нояб. 2009
Просто есть способ деления с остатком. А потом проверять этот остаток, если больше нуля, то число нечетное...
Я так думаю. (Добавление)
Т.е. я хотел сказать, что делить надо на 2. =) (Добавление)
Как это в программе на Си выглядит, сейчас не вспомню. Надо операторы вспоминать.
elmot
Отправлено: 23 Октября, 2012 - 17:21:11
Гуру
Сообщений всего: 1141
Дата рег-ции: Дек. 2010
вы чо, ребята???
CODE:
if(a & 1) {/*odd*/} else {/*even*/}
СКАЗОЧНИК
Отправлено: 23 Октября, 2012 - 17:24:40
Главнокомандующий
Сообщений всего: 377
Дата рег-ции: Нояб. 2009
Распишите мне как работает эта конструкция подробно. Пожалуйста. =)
А то я не могу догнать. Понимаю, что для МК, но не понимаю (a & 1).
Забыл просто.
nestandart
Отправлено: 23 Октября, 2012 - 17:46:41
Супер-модератор
Сообщений всего: 1490
Дата рег-ции: Сент. 2010
Цитата:
А то я не могу догнать. Понимаю, что для МК, но не понимаю (a & 1).
Аналогично. В чистом СИ я не очень ориентируюсь.
elmot
Отправлено: 23 Октября, 2012 - 17:49:45
Гуру
Сообщений всего: 1141
Дата рег-ции: Дек. 2010
СКАЗОЧНИК пишет:
Распишите мне как работает эта конструкция подробно. Пожалуйста. =)
А то я не могу догнать. Понимаю, что для МК, но не понимаю (a & 1).
Забыл просто.
Это любой Си.
& - битовая операция И (не путать с логической И && ). a & 1 - младший бит, т.е. остаток от деления на 2.
1 - трактуется Си как true; 0 - как false.
в ардуино есть опретаор % обозначающий четность?
В Си такого не было, ... (Добавление) nest а переполнение?
Вот я и боюсь что виртуальная машина GL с этим не справляется. Вспомнил я зачем четность считал, сейчас еще раз проверю и выдам создателям чтоб бошки не путали...
elmot
Отправлено: 05 Ноября, 2012 - 16:35:12
Гуру
Сообщений всего: 1141
Дата рег-ции: Дек. 2010
% - это оператор остатка от деления. Есть в любом С
СКАЗОЧНИК
Отправлено: 06 Ноября, 2012 - 17:06:05
Главнокомандующий
Сообщений всего: 377
Дата рег-ции: Нояб. 2009
Вот про это я и писал. =) Про оператор "%"!!!! Просто забыл. После этого оператора остается только остаток от деления. Его и проверяем на 0. Если ноль, значит четное! =)
cjA
Отправлено: 25 Ноября, 2012 - 09:48:25
Генерал
Сообщений всего: 3291
Дата рег-ции: Янв. 2010
или минус четное, простите, если вам не знакомо разностороннее стремление к минимуму
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.