【发布时间】:2016-04-26 20:14:18
【问题描述】:
我在 java 中有一个包含两个元素的数组。
我如何最好地决定是添加这些还是只选择其中一个(哪个?)以尽可能接近 1000?
我确实做错了什么,它总是将两个数字相加!
if(myArray.length==2){
int a = 1000-(myArray[0]);
int b = 1000-(myArray[1]);
int c = 1000-(myArray[0]+myArray[1]);
if( (1000-a) < (1000-b)){
if((a+b)<1000){
bestAnswer = myArray[0]+myArray[1];
}
else{
bestAnswer = myArray[0];
}
}
if( (1000-a) > (1000-b)){
if((a+b)<1000){
bestAnswer = myArray[0]+myArray[1];
}
else{
bestAnswer = myArray[0];
}
}
else{
if((1000-(myArray[0]+myArray[1]))<(1000-(myArray[0]))){
bestAnswer = myArray[0]+myArray[1];
}
else{
bestAnswer = myArray[0];
}
}
【问题讨论】:
-
你能举一些例子和输出期望吗?
-
当然。如果第一个元素是 10,另一个是 20,我们必须将它们相加以尽可能接近 1000。如果一个是 999 另一个是 34 ,我们只需要第一个 999。注意:数组中的任何元素都不能超过 1000!
-
@SofiaEmilsson,为什么会有这样的限制,例如 { 999, 1010 } 是无效输入?在这种情况下,答案将是 999。限制是 所有 元素不能超过 1000,不是吗?
-
理论上是的,但我的指令说:“数组中的每个元素都是小于或等于 1000 的正整数”
-
@SofiaEmilsson,啊,您在评论中添加了要求。