Страницы

Поиск по вопросам

вторник, 28 января 2020 г.

Как определить чётное ли число?

#java


Задача состоит в следующем:
Вывести следующее после текущего чётное число. Числа целые.

Пример: Входные данные: 5, Выходные данные: 6.
или Входные данные: 6, Выходные данные: 8.

Проблема в том, что использовать конструкцию if или циклы нельзя. При скором размышлении
и поиске похожих решений в поисковике ничего полезного не обнаружил.
Подскажите пожалуйста, какие алгоритмы бывают?

Язык Java.
    


Ответы

Ответ 1



Если нет никаких суровых ограничений на размер исходных данных, то подошло бы что-то такое x = x+2 - (x&1); или x = (x+2)&(-2)

Ответ 2



Вариант с остатком от деления. X+2-X%2 Пример: class Main { public static void main(String[] args) { for(int i = 1; i <= 100; i++) { System.out.println(i+" " + a(i)); } } public static int a(int x) {return x+2-x%2;} }

Ответ 3



Еще вариант, для коллекции: x=(x/2+1)*2

Ответ 4



public class Even { public static void main(String[] args) { int x = -4; System.out.println("x=" + x + ", next even " + (x + 2 - Math.abs(x)%2)); } } x=-5, next even -4 x=-4, next even -2 x=-3, next even -2 x=-2, next even 0 x=-1, next even 0 x=0, next even 2 x=1, next even 2 x=2, next even 4 x=3, next even 4 x=4, next even 6 x=5, next even 6

Комментариев нет:

Отправить комментарий