/ / Трійник у трійковій - ява, трійковий

Трійник у трійковій - ява, трійковий

Так що це дуже поширене для циклів ECT, але коли у нас є трійковий приклад, наприклад

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

Як ми можемо поставити чергову трійку після? як розширений трійковий

питання:

Враховуючи два значення int, повертаємо будь-яке значеннябільший Однак, якщо ці два значення мають однакові залишки, якщо їх розділити на 5, то повертаємо меншу величину. Однак у всіх випадках, якщо два значення однакові, поверніться 0. Примітка: оператор% "mod" обчислює залишок, наприклад 7% 5 - 2.

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

моя ідея:

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

Якщо a <b, перевірте, чи модуль 5 рівний ect

Відповіді:

2 для відповіді № 1

У вас є 4 можливих результатів:

  1. a <b і обидва мають однаковий залишок -> повернути a
  2. a <b, і вони не мають того ж залишку -> повернення b
  3. a> b, і обидва мають однаковий залишок -> повернення b
  4. a> b, і вони не мають того ж залишку -> повертають a

Це не означає, до кого ти повернеш, коли a == b.

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

Редагувати:

Я пропустив вимогу повернути 0, коли два числа однакові. Для цього потрібне невелике додавання:

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

0 для відповіді № 2
int ans = (a == b) ? 0 : ((a % 5 == b % 5) ? ((a<b)?a:b) : ((a>b)?a:b));