Also hier ist das Problem:Algorithmus Verwirrung in Codewars
Der neue "Avengers" Film wurde gerade veröffentlicht! An der Kinokasse stehen viele Menschen in einer riesigen Schlange. Jeder von ihnen hat eine einzige 100, 50 oder 25 Dollar Rechnung. Ein "Avengers" Ticket kostet 25 Dollar.
Vasya arbeitet derzeit als Angestellter. Er möchte ein Ticket an jede einzelne Person in dieser Linie verkaufen.
Kann Vasya ein Ticket an jede Person verkaufen und die Änderung geben, wenn er zunächst kein Geld hat und die Tickets streng in der Reihenfolge verkauft, in der die Leute in der Schlange folgen?
Zurück JA, wenn Vasya ein Ticket an jede Person verkaufen und die Änderung geben kann. Andernfalls NEIN zurücksenden.
Mein Code:
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]);
Live-Demo hier https://jsfiddle.net/py234z11/1/
Mein Problem ist, nach codewars, meine Lösung geht 7 Tests aber nicht bei 2, aber ich kann nicht verstehen, welche diejenigen als es gibt nicht die Argumente, die Tickets in Funktion bringen.
Ich habe das Gefühl, dass viele erforderliche Informationen fehlen. Wenn jeder einen 25-Dollar-Schein hat und ein Ticket 25 ist, braucht er keine Änderung und kann nur jede Person in der ersten Zeile verkaufen. – IMTheNachoMan
@IMTheNachoMan ja Entschuldigung Englisch ist nicht meine Muttersprache und versuche mein Bestes, um es zu erklären. Also, wenn jeder 25 Dollar in einer Reihe von 30 Leuten hat, also Tickets ([25,25,25,25 ....]), wird das Programm YES so drucken, wie es sollte, weil sie nie das Geld ausgehen würde. Aber wenn der erste Mann 25 hatte und der zweite Kerl 100 Dollar auf 75 Wechsel hatte, würde der arme Vasya keine Kleingeld haben, so dass es NO –
drucken würde Ohne Ihre Eingangslinien zu sehen, wie können wir sagen. – bhspencer