/ / Ternary in the ternary - java, ternary

Ternary w trójskładnikowym - java, ternary

Więc to bardzo często mieć pętle ect, ale gdy mamy potrójny przykład, taki jak

int answer = (a < b) ? b : a;

Jak możemy po Ternary położyć kolejny potrójny? jak ulepszone trójskładnik

pytanie:

Biorąc pod uwagę dwie wartości int, zwracaj dowolną wartośćwiększy. Jeśli jednak dwie wartości mają tę samą resztę, gdy są podzielone przez 5, to zwracają mniejszą wartość. Jednak we wszystkich przypadkach, jeśli te dwie wartości są takie same, zwracaj 0. Uwaga: operator% "mod" oblicza resztę, np. 7% 5 to 2.

maxMod5(2, 3) → 3
maxMod5(6, 2) → 6
maxMod5(3, 2) → 3

mój pomysł:

public int maxMod5(int a, int b) {
int answer = ((a < b) ? (a % 5 == b % 5) ? a : b) : a;
}

Jeśli <b, sprawdź czy moduł 5 jest równy ect

Odpowiedzi:

2 dla odpowiedzi № 1

Masz 4 możliwe wyniki:

  1. a <b i oba mają taką samą resztę -> return a
  2. a <b i nie mają takiej samej reszty -> return b
  3. a> b i obie mają taką samą resztę -> return b
  4. a> b i nie mają takiej samej reszty -> return a

Nie ma znaczenia, do którego powrócisz, kiedy a == b.

int answer = (a < b) ? ((a % 5 == b % 5) ? a : b) : ((a % 5 == b % 5) ? b : a);

Edytować:

Brakowało mi wymogu powrotu 0, gdy te dwie liczby są takie same. Wymaga to niewielkiego dodatku:

int answer = a==b ? 0 : (a < b) ? ((a % 5 == b % 5) ? a : b) : ((a % 5 == b % 5) ? b : a);

0 dla odpowiedzi nr 2
int ans = (a == b) ? 0 : ((a % 5 == b % 5) ? ((a<b)?a:b) : ((a>b)?a:b));