この変数x
には、配列に対してテストする必要のある数値が含まれています。 var x = 10; var ary = [ 3,5 ]
特定の合計で数値を分割する方法
私はx
キーがx
を作るまで追加何をすべきかを示し、その後、ary
のキーの組み合わせの合計によって補うことができるかどうかをテストします。
この場合、3
は使用できません。したがって、結果は= 5, 5
の場合x = 10
(関数は配列を検索して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
を持っていると仮定すると、
は、どのような結果は、xに基づいて取得する方法をより多くの例は以下のとおりです。
x = 8
場合、結果だろう= 3, 5
。
x = 15
場合、結果だろう= 5, 5, 5
x = 9
場合、結果だろう= 3, 3, 3
など
注:鍵が使用できる回数には制限があってはなりません。
なぜ同じインデックス[i]は== X '[I] +進進 'で自体に追加され? – guest271314
@ guest271314目標は、合計がxに足りるかどうかを調べることでした。 xを得るのに何度もインデックスを追加することを含みます。あるいは、xを得るためにそれを他のインデックスに加えてください。 –
数値アルゴリズムのパーティション化はあなたを助けることができますhttp://stackoverflow.com/questions/400794/generating-the-partitions-of-a-number –