我需要任何给定数字的开始,中间和结束值,它不必平均分配,只需要一点逻辑。例如:
var parts = 3;
显然,我可以将其除以3,得到一个均匀设计的结果start: 1; middle: 1; end: 1
。
但是,如果用户要输入类似的内容:
var parts = 8;
在我看来,答案是start: 2; middle: 4; end: 2
。
我需要根据'parts'变量的长度执行基本任务。
示例:
我需要计算开始值,中间值和结束值,这样我才能做到这样的事情。
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');
}
我怎么能算出这个?
答案 0 :(得分: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);
答案 1 :(得分: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);
答案 2 :(得分:0)
说实话,我一离开家,上车,便记得Modulo Operation。虽然你的大部分答案都有效,但我有一个使用Modulos的答案,我必须在这里自私,而且最简单和正确的版本。
var parts=9;
var start = end = middle = (parts - (parts % 3)) / 3;
middle += parts % 3;
但是谢谢大家的帮助!