HELLO WORLD)))Задачу я решил, только хочу понять почему не сработало %2==5 и сработало %2!=0
Scanner scanner= new Scanner(System.in);
String a=scanner.nextLine();
for(int i=0;i<a.length();i++){
if(a.charAt(i)%2==0){
even++;
}}System.out.print("Even: "+even);
for( int i=0;i<a.length();i++) {
if(a.charAt(i)%2==5)//заменил на !=0 и всё сработало... {
odd++;
}
}
System.out.print(" Odd: "+odd);
}}
Павел
7 уровень
HELLO WORLD)))Задачу я решил, только хочу понять почему не сработало %2==5 и сработало %2!=0
Решен
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Serg Serg
27 апреля 2018, 12:34
Деление по модулю - деление с остатком, результатом которого являются два числа, собственно неполное частное + остаток. То есть если ты делишь по модулю 2 четное число то результатом всегда будет частное без остатка: 6%2 = 3, остаток 0, а если делишь нечетное 7%2 = 3 + остаток 1
т.е. 3*2 + 1 = 7. В Java деление по модулю дает ТОЛЬКО остаток т.е в Java истинно выражение 6%2=0, а 7%2 = 1, в задаче ошибка в выражении a.charAt(i)%2==5 т.к. у любого нечетного числа остаток от деления по модулю 2 это 1
0
Павел
27 апреля 2018, 15:14
Спасибо)
0
--------Master
26 апреля 2018, 15:08решение
Сможешь назвать число, которое при делении на 2 даст остаток 5 ? ))
+5
Павел
26 апреля 2018, 15:40
Ну например 7:2=3,5(остаток 5 по идее), да и вообще любое нечётное при делении на 2 пятёрку даёт. Хотелось бы как-то понять этот момент.
-4
--------Master
26 апреля 2018, 16:38полезный
Остаток - это не дробная часть результата деления, в этой операции дробные числа вообще не участвуют.
+2
Павел
26 апреля 2018, 16:40
Ну как-то более менее понятно, спасибо
0