gpt4 book ai didi

java - 三元中的三元

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:16:36 26 4
gpt4 key购买 nike

所以有 for 循环等是很常见的,但是当我们有一个三元例子时,比如

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 是否相等

最佳答案

您有 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);

关于java - 三元中的三元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34470275/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com