Четность и нечетность числа, не понимаю что происходит

238
21 февраля 2018, 10:20

Парни, такая беда. Я не понимаю в чем тут ошибка. Мне нужно, чтобы в цикле, на выходе 2 числа были нечетными, но почему то, цикл заканчивается, когда одно число четное, на второе он забивает. Я пробовал как && , так и & , я понимаю их разницу, но это не помогает. Просьба не выпендриваться, а доходчиво обьяснить, что я тут делаю не так. С меня печенье, у меня мама их вкусно готовит

class Test{
    public static void main(String[] args){
        int i,j;
        do {
            i = (int) (Math.random()*10);
            j = (int) (Math.random()*10);
        } while ((i % 2) != 0 & (j % 2) != 0);
        System.out.println("i = " + i + " j = " + j);
    }
}

Вывод такой (Несколько примеров)

i = 3 j = 2
i = 6 j = 7
i = 4 j = 3
Answer 1

Ошибка в алгоритме. Нужно делать цикл от обратного, т.е. пока хотя бы одно число четное :

   do {
        i = (int) (Math.random()*10);
        j = (int) (Math.random()*10);
    } while ((i % 2) == 0 || (j % 2) == 0);
Answer 2

я бы попробовал while (!(( ((i % 2) != 0) && ((j % 2) != 0) )) но рекомендую использовать формулу

int i = ((int) (Math.random()*10))*2+1;
int j = ((int) (Math.random()*10))*2+1;

тут числа будут генерироваться сразу нечетными
a = 2n + 1

READ ALSO
Как определяется память для массива?

Как определяется память для массива?

Сколько выделяется памяти для статического массива? Допустим у меня есть массив и его фиксированная длина 10Я только определил

377
Почему tomcat не интерпретирует thymeleaf теги

Почему tomcat не интерпретирует thymeleaf теги

Добрый день! Установил на VDS томкат 85

291
Нужно сравнить два LIst<Integer> поэлементно?

Нужно сравнить два LIst<Integer> поэлементно?

ЗдравствуйтеЕсть list1 - (10,1) и list2 - (1,10) есть метод Integer

275
Ошибка Gradle при создании нового проекта в Android Studio

Ошибка Gradle при создании нового проекта в Android Studio

Ставлю Android Studio на новый пкПри создании нового проекта выходит ошибка

211