我对JavaScript真的很陌生,并且一直坚持做一个练习。我正在使用TextPad,因为这是我被要求用于本练习的内容。
基本上,我需要一个输入参数为数字/整数,然后有12个输出参数来显示输入已被12除,并且每个输出参数的值均不超过上一个或下一个大于1的值。 。
到目前为止,我已经使用数组和for循环编写了以下代码,但是我只是不知道在获取输出参数以显示均匀分配的数组每个值方面该怎么做或做什么。
var amount = "30";
var camels = ["cam1", "cam2", "cam3", "cam4", "cam5", "cam6", "cam7", "cam8", "cam9", "cam10", "cam11", "cam12"]
for(i=0;i<camels.length;i++){
WScript.echo(camels[i] + "|" + amount/12);
}
for(i=1; i<13; i++){
n = Math.random();
o = n * 12;
p = o + 1;
q = Math.floor(p);
}
这确实让我感到困惑,因此不胜感激,但是请记住我是一个新手。
这是一个作业问题,如果您获得完整的解决方案,您将一无所获(也许您不配得到一个A!)
相反,我可以给您一些指导,希望可以为您提供正确的答案。
首先要注意的是,在进行数学计算时,您希望处理数字,因此请适当地更改第一行
var amount = 30;
(请注意,如果让用户输入此数字,则需要确保其数字并将其转换为数字-用户输入几乎始终是字符串。请使用parseInt(<user input>,10)
)。
第二件事是将您的金额除以12 Math.floor
。在此示例中,您将获得24
。
(考虑上述问题的另一种方法是研究模运算符%
,它可以代替使用)
此时,您可以创建一个数组,其中包含12个元素(每个骆驼一个),每个元素应计数为2(每个代表2个货物)。(请参阅参考资料1)
在此示例中,您将得到剩余的余数,6
剩下要做的就是6
在骆驼中随机分配剩余的余数。
您可以通过将所有12个骆驼放入一个数组中,循环6
(或进行其他操作)并在0
和之间选择一个随机数来实现此目的{length of camel array}-1
。将该货物分配给选定的骆驼,然后从骆驼阵列中删除该骆驼。这样可以确保没有任何一只骆驼被随机分配多于一件的额外货物。
与一般编程一样,最后一点应分解为各个可管理的步骤。
不要感到困惑;这里有2个数组。您创建的一个更早-它包含12个元素并跟踪每个骆驼上的货物数量,另一个是临时的,用于跟踪为哪个骆驼分配了“额外”货物。前者从不改变长度,而后者则随着骆驼被分配额外的货物而变小。
参考资料:
Math.random
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句