A ja w ostatnim użyłem pętli i logiki czyli tego co powinienem na ten moment użyć. Jedynie z komentarzy się dowiedziałem, że liczbę po każdym obrocie pętli dzielić przez 10.
while (liczba >= 1){
if (liczba % 2 == 0){
parzyste++;
} else {
nieparzyste++;
}
liczba = liczba / 10;
}
Wygodnym jest skorzystanie ze strumieni w ostatnim zadaniu:
String sNum = new BufferedReader(new InputStreamReader(System.in)).readLine();
nieparzyste = (int)Arrays.stream(sNum.split("")).mapToInt(Integer::parseInt).filter(x -> x%2==1).count();
parzyste = (int)Arrays.stream(sNum.split("")).mapToInt(Integer::parseInt).filter(x -> x%2==0).count();
ostatnie zadanie wykonalem z uzyciem metody length() potem petle for wywolalem tyle razy ile metoda length zwrocila wyniku dla podanej liczby. za kazdym razem sprawdzany byl warunek ((liczba % 2) == 0) i dla prawdy zwiekszylem licznik parzystych o 1 a dla nieprawdy licznik nieparzystych o 1. na koniec liczba zostaje podzielona przez 10 co skutkuje tym ze nastepna liczba od konca zostaje sprawdzana
There is an error in the last one task (in polish version of "Even and odd numbers"). During check, even (parzyste) and odd (nieparzyste) must be swapped to complete the task, as in the example:
parzyste=b;
nieparzyste=a;
System.out.println("Parzyste: "+a+" Nieparzyste: "+b);
GO TO FULL VERSION