2016-05-03 6 views
3

ここに問題があります:コードワーのアルゴリズム混乱

新しい「アベンジャーズ」の映画がリリースされました!映画館の興行場には、巨大なラインの中にたくさんの人がいます。それぞれ100ドル、50ドルまたは25ドルの請求書があります。 「アベンジャーズ」のチケットは25ドルかかります。

現在Vasyaは書記官として働いています。彼はこの行のすべての人にチケットを売りたがっています。

Vasyaは当初、お金がなく、人々がラインに従うように厳密にチケットを売っていれば、各人にチケットを販売し、変更を与えることができますか?

Yesを返します.Vasyaが各人にチケットを販売して変更を行うことができる場合は、YESを返します。それ以外の場合は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で失敗しますが、私はどのものと理解することはできませんされてそれはチケットの機能を置く引数を与えません。

+1

必要な情報が不足しているような気がします。誰もが25ドルの請求書を持っていて、チケットが25であれば、彼は何も変更する必要はなく、ライン1のチケットで各人を売ることができます。 – IMTheNachoMan

+1

@IMTheNachoManはい申し訳ありません英語は私の最初の言語ではありません。だから誰もが25人のドルを持っているとすれば、30人の人がチケットを買うことができます([25,25,25,25 ....])。決してお金が足りなくなることはないので、プログラマーはYESを印刷します。しかし、もし最初の人に25人がいて、2人目に100ドルの請求書が75変更を待っていたら、貧弱なVasyaは余分な変更をしないので、いいえ –

+0

を印刷します。 – bhspencer

答えて

3

彼が保有している金額をカウントするだけでは不十分です - あなたは請求書の枚数を把握する必要があります。

たとえば、$ 100または$ 100の請求書を持っている人に変更を加えることはできません。特定の請求書が必要です($ 50、$ 25、$ 50または$ 25の請求書$ 100の法案に変更を加える)。

総額を収集するのではなく、収集された紙幣の数を記録しておきます。

+1

また、誰かが$ 100を持っている場合は、$ 50 + $ 25を与える必要があります.3 x 25ではありません。 – stark