因此,对于for循环ect来说非常普遍,但是当我们有一个三元例子时,例如
int answer = (a < b) ? b : a;
我们怎样才能再放三个?像一个增强的三元
问题:
给定两个int值,返回较大的值。但是,如果两个值除以5时具有相同的余数,则返回较小的值。但是,在所有情况下,如果两个值相同,则返回0.注意:%&#34; mod&#34;运算符计算余数,例如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;
}
如果&lt; b,检查模数5是否等于
答案 0 :(得分:2)
您有4种可能的结果:
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);
答案 1 :(得分:0)
int ans = (a == b) ? 0 : ((a % 5 == b % 5) ? ((a<b)?a:b) : ((a>b)?a:b));