这个变量 x
包含一个需要与数组进行比较的数字。
var x = 10; var ary = [ 3,5 ]
我想测试是否可以用 ary
中的任意一组数之和来组成 x
,然后显示哪些数相加得到了 x
。
在这种情况下,无法使用 3
。如果 x = 10
,结果应该是 5, 5
(因为函数应该搜索数组并找到 5 + 5 等于 10)
数组的长度和 x 是未知的。我没有使用任何库。到目前为止我已经做到了:
var x = 10;
var ary = [ 3, 5 ];
function cycle(){
var result;
for( var i = 0; i < ary.length; i++ ){
if( ary[ i ] + ary[ i ] == x ){
result = ary[ i ] + ',' + ary[ i ];
}
else if( ary[ i ] + ary[ i + 1 ] == x ){
result = ary[ i ] + ',' + ary[ i + 1 ];
}
else if( ary[ i + 1 ] + ary[ i + 1 ] == x ){
result = ary[ i + 1 ] + ',' + ary[ i + 1 ];
}
return result;
}
}
var result = cycle();
document.write( result );
假设数组仍然只有值为
3
和5
的2个元素,以下是更多示例,根据x得到的结果:如果
x=8
,则结果将为3, 5
;如果
x=15
,则结果将为5, 5, 5
;如果
x=9
,则结果将为3, 3, 3
等。
注意:键可以使用的次数没有限制。
javascript
、arrays
,当前问题也没有标记为algorithm
和combinations
。 - guest271314