Чётные и нечётные циферки

  • 10
  • Недоступна
Давайте определим, сколько четных цифр, а сколько нечетных в числе, введенном с клавиатуры. Если число делится без остатка на 2 (т. е. остаток равен нулю), значит оно четное. Увеличиваем на 1 счетчик четных цифр (статическая переменная even). Иначе число нечетное, увеличиваем счетчик нечетных цифр (статическая переменная odd).
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (665)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
p90x
Уровень 7
14 апреля, 20:29
1 while 1 if 1 else
xxxx
Уровень 16
14 ноября 2022, 05:32
По моему, в правильном решении нет проверки на положительность вводимого числа -валидатор пропускает и отрицательные числа
Arkadiy
Уровень 20
8 апреля 2022, 11:36
Возможно, будет кому-то интересно и понадобится. Логично ,что есть несколько реализаций, одна из них...Лайк если помог и правильно (см ведь только учусь) ....PS в коде пару эстетических , как по мне, моментов
Александр Android Developer
8 апреля 2022, 10:21
String s = br.readLine(); //читаем строку s.length() //длина строки (количество цифр) далее массив, перебираем символы строки, сравнивая остаток от деления символа в s.charAt(i) на 2 с 0. Соответственно увеличиваем количество четных или нечетных
Евгений N
Уровень 15
31 марта 2022, 15:14
а почему не принимае ВЕРНОЕ решение через анализ строк? пишет "Убедись, что количество нечетных цифр сохраняется в переменную odd." "Убедись, что количество четных цифр сохраняется в переменную even."
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s = reader.readLine();
int n = 0, odd=0, even=0;
        for ( int i=0; i<s.length(); i++ )
           n = "02468".contains( s.substring(i,i+1) ) ? even++ : odd++;
        System.out.println("Even: "+even+" "+"Odd: "+ odd);
зы "ошибку" нашел. :)
Dima Solokha
Уровень 7
22 декабря 2021, 20:43
Отличная задача. Сам не решил, но разобрав решение многое понял.
Ян
Уровень 24
13 октября 2021, 15:35
Скажите пожалуйста, почему while(a > 1) не срабатывало и надо было != 0 условие делать? При этом, пару тестов я делал с числами 89756 и 4445 и результат был идентичен правильному. В чём тут прикол?
Dmitry Tolstov Backend Developer в Microsoft
27 сентября 2021, 16:20
Решил таким способом.
Роман
Уровень 17
14 сентября 2021, 06:57
Зачем a = a / 10 ; ???
Andrew Joy
Уровень 17
26 сентября 2021, 14:17
Эта строка необходима для того, чтобы цикл не был бесконечным, т.к. это счётчик, т.е. по окончании подсчёта even и odd c помощью данной строки мы выйдем из цикла. Каждое последующее прохождение цикла смещает запятую влево.
Mark
Уровень 19
29 сентября 2021, 11:28
допустим ты ввел в программу число 1234. Деля число по остатку %2 каждый раз ты по сути сравниваешь последнюю цифру. Следующим шагом чтоб не сравнивать повторно 1234, а получить 123, ты делишь 1234 на 10 (1234/10). В яве при таком делении целых чисел (int) дробная часть отбрасывается. Т.е. в школе на уроке математики ты разделив 1234 / 10 записал бы в ответ 123,4. А здесь в яве просто 123 без дробной части. И так крутим цикл пока от введенного числа не останется 0, когда это случится по условию цикла он (цикл) завершит работу.
Alex
Уровень 15
9 сентября 2021, 06:31
нагуглил прикольную переборочку потом наш if - else, проверку на четность, вставить в средину переборки. и вуаля, функциона бэнэ))