bool isEven(int x) {
return !(x & 1);
}«Один бит — вся правда. Код для дзен-программистов.»
bool isEven(int x) {
const bool table[] = {true, false, true, false, true, false, true, false};
return table[abs(x) % 8];
}«Табличный метод древних шумеров. 8 значений хватит всем.»
bool isEven(int x) {
int sum = 0;
unsigned int ux = abs(x);
while (ux) {
sum += ux & 1;
ux >>= 1;
}
return !(sum % 2);
}«Считаем единички как настоящие боги битов.»
bool isEven(int x) {
if (x == 0) return true;
if (x == 1) return false;
return isEven(x - 2);
}«Рекурсия — это когда функция вызывает себя, чтобы спросить: "Ну чётное или нет?"»
bool isEven(int x) {
return !(x % 2) ? !(0) : !(1);
}«Логика двойного отрицания для истинных джедаев.»
bool isEven(int x) {
int evens[] = {0,2,4,6,8,10,12,14,16,18,20};
for (int i = 0; i < 11; i++) {
if (abs(x) == evens[i]) return true;
}
return false;
}«Таблица чётности до 20. Для чисел больше — не гарантируем.»
template<int N>
struct EvenChecker {
static constexpr bool value = !(N % 2);
};
bool res = EvenChecker<42>::value;
«Шаблоны времени компиляции для тех, кто считает чётность ещё до запуска программы.»
В контексте рубрики «Кодим на C/C++» раздаём ценные советы в комментариях. С каждого подписчика — по совету!
#программирование #C #cpp #задачи #computer_science #разбор_задач
💡 Physics.Math.Code // @physics_lib
