【发布时间】:2016-05-03 20:17:09
【问题描述】:
那么问题来了:
新的“复仇者联盟”电影刚刚上映!电影院售票处有很多人排着长队。他们每个人都有一张 100、50 或 25 美元的钞票。 “复仇者联盟”门票 25 美元。
Vasya 目前是一名文员。他想把票卖给这条线上的每一个人。
如果 Vasya 最初没有钱并严格按照人们排队的顺序出售门票,Vasya 是否可以向每个人出售一张票并找零?
返回 YES,如果 Vasya 可以向每个人出售一张票并提供找零。否则返回NO。
我的代码:
function tickets(peopleInLine) {
var speakVasya = "";
var vasyaValue = 0;
for (var i = 0; i < peopleInLine.length; i++) {
if (peopleInLine[i] - 25 > vasyaValue) {
speakVasya = "NO";
break;
} else {
vasyaValue += 25;
speakVasya = "YES";
}
}
document.write(speakVasya);
}
tickets([25, 25, 50]);
现场演示在这里 https://jsfiddle.net/py234z11/1/
我的问题是,根据 codewars,我的解决方案通过了 7 次测试,但在 2 次失败,但我无法理解哪些测试,因为它没有给出放入门票功能的争论。
【问题讨论】:
-
我觉得缺少很多必需的信息。如果每个人都有一张 25 美元的钞票,而一张票是 25 美元,那么他不需要任何零钱,只需将每个人排队卖一张票。
-
@IMTheNachoMan 是的,对不起,英语不是我的母语,我尽力解释它。因此,如果每个人都有 25 美元,比如说 30 个人,即门票([25,25,25,25....]),程序将按应有的方式打印 YES,因为她永远不会用完钱。但是如果第一个人有 25 美元,第二个人有 100 美元的钞票等待 75 零钱,那么可怜的 Vasya 将没有任何多余的零钱,所以它会打印 NO
-
没有看到你的输入行我们怎么知道。
标签: javascript algorithm math numbers