Как найти максимальное четное число?
Задача: `На вход подаётся три целых числа. Выведите максимальное чётное из них. Если чётных чисел нет, выведите "Чётных чисел нет".
Проверки:
Input:
17 15 13 13 15 17
Четных чисел нет
8 -9 -10 -10 9 8
8
8 3 12 12 3 8
12
-10 -12 -14 -14 -12 -10
-10
4 7 9 9 7 4
4
-8 10 4 4 10 -8
10
0 0 1222 1222 0 0
1222
-12 0 2 2 0 -12
2
-12417248 -2357385 -1244
-1244
-0 -0 2 2 -0 -0
2
-0 -0 -0
0
Мой код что сделано, в данный момент ничего не выводит, так же проблема с отрицательными числами:
import java.util.*;
import java.lang.Math.*;
public class Main
{
public static int a_mx, max, result;
public static int maxx(int a, int b, int c){
a_mx = a > b ? a : b;
max = a_mx > c ? a_mx : c;
return max;
}
public static int max_two(int a, int b){
a_mx = a > b ? a : b;
return a_mx;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
a = a < 0 ? -a: a;
b = b < 0 ? -b: b;
c = c< 0 ? -c: c;
// н н н
if((a % 2 != 0) && (b % 2 != 0) && (c % 2 != 0)){
System.out.print("Чётных чисел нет");
//ч ч ч
}else if((a % 2 == 0) && (b % 2 == 0) && (c % 2 == 0)){
//int result = Math.max(a, Math.max(b,c));
int result = maxx(a, b, c);
System.out.print(result);
// н ч ч
}else if((a % 2 != 0) && (b % 2 == 0) && (c % 2 == 0)){
a = 0;
//int result = Math.max(a, Math.max(b,c));
int result = maxx(a, b, c);
System.out.print(result);
// ч н ч
}else if((a % 2 == 0) && (b % 2 != 0) && (c % 2 == 0)){
b = 0;
//int result = Math.max(a, Math.max(b,c));
int result = maxx(a, b, c);
System.out.print(result);
// ч ч н
}else if( (a % 2 == 0) && (b % 2 == 0)&&(c % 2 != 0) ){
c = 0;
// int result = Math.max(a, Math.max(b,c));
int result = maxx(a, b, c);
System.out.print(result);
// н ч н
}else if( (a % 2 != 0) && (b % 2 == 0)&&(c % 2 != 0) ){
a = 0;
c = 0;
// int result = Math.max(a, Math.max(b,c));
int result = maxx(a, b, c);
System.out.print(result);
}
//}
}
}
Ответы (1 шт):
Автор решения: NMD
→ Ссылка
Как вариант
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
// если а четное, то записываем его значение, иначе -1
a = a % 2 == 0 ? a : -1;
b = b % 2 == 0 ? b : -1;
c = c % 2 == 0 ? c : -1;
if ((a < 0) && (b < 0) && (c < 0))
System.out.print("Чётных чисел нет");
else
System.out.print(Math.max(a, Math.max(b,c)));