BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(bufferedReader.readLine());
double b = a % 2;
if ((a < 0) && (b > 0)) System.out.println("отрицательное нечетное число"); // <---------- тут
if ((a < 0) && (b == 0)) System.out.println("отрицательное четное число");
if (a == 0) System.out.println("ноль");
if ((a > 0) && (b == 0)) System.out.println("положительное четное число" );
if ((a > 0) && (b > 0)) System.out.println("положительное нечетное число");
Задачу решил немного по другому, но сначала пытался сделать так. Не могу понять, почему не выполняется это условие, компилируется, но результат на экран не выводит.
RedToad
22 уровень
Все условия выполняются кроме этого
Архивный
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
JustinianJudge в Mega City OneMaster
3 марта 2020, 19:39решение
на нечетность проверяют так:
number % 2 != 0
Ты в своем коде учел нечетность для положительных:
допустим мы вводим 1, 1 % 2 получаем 1 в остаче. +1
У тебя проверка норм срабатывает b > 0
А для отрицательных что получается, -1 % 2 = -1
Cмотрим твой код:
a меньше 0? Да, -1 (введенное с клавиатуры число) меньше 0.
Но вот вторая часть у тебя не сработает - b > 0? Нет.
b у нас -1
Вот поэтому, чтобы не надо было вручную указывать, для положительных +, для отрицательных -, то пишут просто:
number % 2 != 0
если число нацело делится на 2, отлично, это четное.
Во всех остальных случаях, больше нуля, меньше , не важно, это нечетное
+2