Loading...
SilviaSJ avatar SilviaSJ 3 Точки

Задача 4. Кино ваучер

Здравейте, 

зациклих над тази задача, предполагам, че логиката ми куца, но така и не успявам да разбера защо и къде.

Judge ми дава 70/100, а иначе изходите ми излизат.

https://pastebin.com/mnGaRevv

 

Задача 4. Кино ваучер

Любо е голям почитател на киното и редовно ходи на прожекции и участва в томболи, от които често печели ваучери за кино. Вашата задача е да напишете програма, която да изчислява колко покупки от киното може да си купи Любо със спечеленият ваучер. Ако името на покупката съдържа повече от 8 символа, то тя е билет за филм, а нейната цена представлява сумата на ASCII символите от първите ѝ два символа. Ако името на покупката съдържа 8 или по-малко символа, нейната цена е равна на стойността на първия ASCII символ в името. Любо въвежда името на покупките, които желае, докато не въведе "End" или не въведе покупка, чиято стойност е по-голяма от останалата сума на ваучера.

Вход

Първоначално се чете един ред:

  • Стойността на ваучера – цяло число в интервала [1…100000]

След това до получаване на команда "End" или до изчерпването на ваучера, се чете по един ред:

  • Покупката, която Любо е избрал – текст

Изход

Програмата приключва при въвеждане на команда "End" или при покупка чиято стойност е по-голяма от останалите пари от ваучера. На конзолата трябва да се напечатат три реда:

  • "{брои закупени билети}"
  • "{брой закупени други покупки}"

Примерен вход и изход

Вход

Изход

Обяснения

300

Captain Marvel

popcorn

Pepsi

1

1

Сумата на ваучера е 300

Дължината на името на първата покупка е 14 символа, 14 > 8 следователно е филм и цената се образува от първите два символа на текста:

'C'(67) и 'a'(97), цена: 67 + 97 = 164 <= 300, цената изпълнява условието да е по-ниска или равна от наличната сума и купуваме билета.

Остават: 300 – 164 = 136

Дължината на името на втората покупка е 7 символа, 7 <= 8 следователно това е продукт, чиято цена се получава от първият символ 'p'(112), цена: 112 <= 136, цената е по-ниска или равна от наличната сума и купуваме продукта.

Остават 136 – 112 = 24

Дължината на името на третата покупка е 5 символа, 5 <= 8 следователно това е продукт, чиято цена се получава от първият символ 'P'(80), цена: 80 > 24, цената е по-висока от останалата сума във ваучера, продукта не се купува и печатаме броя на покупките

1500

Avengers: Endgame

Bohemian Rhapsody

Deadpool 2

End

3

0

Сумата на ваучера е 1500

Дължината на името на първата покупка е 17 символа, 17 > 8 следователно е филм и цената се образува от първите два символа на текста:

'A'(65) и 'v'(118), цена: 65 + 118 = 183 <= 1500, цената е по-ниска или равна от наличната сума, следователно купуваме билета.

Остават: 1500 – 183 = 1317

Дължината на името на втората покупка е 17 символа, 17 > 8 следователно е филм и цената се образува от първите два символа на текста:

'B'(66) и 'o'(111), цена: 66 + 111 = 177 <= 1317, цената е по-ниска или равна от наличната сума и купуваме билета.

Остават: 1317 – 177 = 1140

Дължината на името на третата покупка е 10 символа, 10 > 8 следователно е филм и цената се образува от първите два символа на текста:

'D'(68) и 'e'(101), цена: 68 + 101 = 169 <= 1140, цената е по-ниска или равна от наличната сума и купуваме билета.

Остават: 1140 – 169 = 971

Получаваме команда End и печатаме броя на покупките

 

Тагове:
0
Programming Basics
MartinBG avatar MartinBG 4803 Точки

Грешката беше, че увеличавате броя билети/покупки, преди да проверите дали има достатъчно пари, а при проверката намалявате винаги броя покупки (възможно е последната стока да е била билет).

Оправен код.

0
04/06/2020 15:59:24
SilviaSJ avatar SilviaSJ 3 Точки

ясно, много благодаря отново

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.