0

任意の数値の開始値、中間値、終了値が必要です。均等に分散する必要はなく、少しのロジックが必要です。例:

var parts = 3;

明らかに、これを 3 で割ると、さらに工夫された結果が得られstart: 1; middle: 1; end: 1ます。

ただし、ユーザーが次のようなものを入力した場合:

var parts = 8;

私の目には、答えはstart: 2; middle: 4; end: 2.

「パーツ」変数の長さに応じて、基本的なタスクを実行する必要があります。

例:

このようなことができるように、開始値、中間値、終了値を計算する必要があります。

for (var t=0; t < start; t++){
    console.log('Start');
}
for (var t=0; t < middle; t++){
    console.log('Middle');
}
for (var t=0; t < end; t++){
    console.log('End');
}

どうすればこれを計算できますか?

4

3 に答える 3

2
var parts, segment, start, middle, end;

parts = 8; // Obviously this value would be defined elsewhere

segment = Math.floor(parts / 3);

start = end = segment;
middle = parts - (segment * 2);
于 2013-06-30T05:44:58.390 に答える
1

解決策は次のとおりです。

var start,end,middle;
var parts=10;
if(parts%3==0)
{
start=end=middle=parts/3;
}
else
{
start=parseInt(parts/3);
end=parseInt(parts/3);
middle=parts-start-end;
}
console.warn(start+" "+end+" "+middle);

これがフィドルです:http://jsfiddle.net/j9WUZ/4/

于 2013-06-30T05:41:06.050 に答える
0

正直なところ、家を出て車に乗り込むとすぐにモジュロ演算のことを思い出しました。あなたの答えのほとんどは機能しますが、モジュロを使用している答えが1つありましたが、ここでは利己的でなければならず、最も単純で正しいバージョンです。

var parts=9;
var start = end = middle = (parts - (parts % 3)) / 3;
middle += parts % 3;

しかし、あなたの助けをありがとう!

デモ: http://jsfiddle.net/B5tap/

于 2013-06-30T06:46:19.737 に答える