我们要找到连续输入值之间的差异并返回最大的变化。 我的主要问题是找到正确的运算符(我认为)。我也想让它与负值一起工作..
if(count > 0){
change = Math.abs(temp) - Math.abs(temp2);
UI.println(change);
if(Math.abs(change) > Math.abs(bigChange)){
bigChange = Math.abs(change);
}
}
答案 0 :(得分:1)
你对abs的使用是不正确的。考虑temp为-1且temp2为1的情况。这些值之间的差异为2,但您的例程将计算为0。
尝试:
if(count > 0) {
change = Math.abs(temp - temp2);
UI.println(change);
if( change > bigChange ) {
bigChange = change;
}
}
答案 1 :(得分:0)
如果你想找到你应该使用的数字之间的变化
change = Math.abs(temp- temp2);
而不是
change = Math.abs(temp) - Math.abs(temp2);
此外,您应该初始化变量
bigChange=0
此外,由于变量更改且bigChange始终大于零,因此可以避免再次调用Math.abs方法。
if(change > bigChange)
{
bigChange = change;
}
也是正确的。
答案 2 :(得分:0)
应该相当简单:
int diff = temp - temp2;
max = Math.max(maxDifference, Math.abs(diff));
println(max).
你还有其他要求吗? Math.max和Math.min非常优化,并且与您自己进行比较一样快。这是一个单行。请参阅此答案以及Math.max vs(a> b?a:b)