package com.javarush.task.task06.task0606;
import java.util.Scanner;
import java.io.*;
public class Solution {
public static int even;
public static int odd;
public static void main(String[] args) throws IOException {
//напишите тут ваш код
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int count = 10;
even = 0; odd = 0;
do{
if((a%count)%2 == 0){//
even++;
count = count*10;
}
else{
odd++;
count = count*10;
}
}while (count<a);
System.out.println("Even: " + even + " Odd " + odd);
}
}
Костя
9 уровень
Логика, как я считаю, верна, но программа выдаёт ошибочный ответ. Попробуйте число 125 и сами убедитесь.
Обсуждается
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Александр Неклеса Backend Developer
21 декабря 2017, 01:22
попробуй так, прочитай строку и спарси каждый её символ по очереди Integer.valueOf(s.charAt(i))
a & 1 == 0 тоже, что и a % 2 == 0, но отработает быстрее (если нужна производительность)
или так можно
+2
Roman Pryshchepa Java Developer Expert
18 декабря 2017, 11:12
Ты бы еще прокомментировал свою логику (что ты ожидаешь от каждой строчки кода), чтобы было проще понять, где ты ошибся.
0
Роман Линник
17 декабря 2017, 21:14
и int count = 10;
поменять на int count = 1;
0
Роман Линник
17 декабря 2017, 21:12
if((a%count)%2 == 0){
нужно заменить на
if((a/count)%2 == 0){
и все будет ок
+1
Владимир
17 декабря 2017, 20:22
да и вообще программа не правильно работает
0
--------Master
17 декабря 2017, 20:15
В 1-й итерации ((a%count)%2 равно ((125 % 10) % 2) == 5 % 2 == 1, т.е. odd++, во 2-й - ((125 % 100) % 2) == 25 % 2 == 1, снова odd++, третьей итерации не будет: count == 1000, a == 125. Программа выдает все верно - 0 четных, 2 нечетных.
0
Владимир
17 декабря 2017, 20:15
a%count - a зачем это?
0