Loading...
viktorivanov28 avatar viktorivanov28 1 Точки

Проблем със задача 5. "Великденски козунаци" от Изпит 20/21 Април 2019 г.

[JS]

Здравейте, колеги,

Имам следния проблем със задача "Великденски козунаци". Кода ми дава правилни изходи в VS Code, но Judge ми дава само 28/100 т. Разбирам, че грешката е във въртенето на цикъла до броя на козунаците, само че не доумявам как да го направя, при положение, че на първия вход козунаците са 3, а елементите от масива са много повече - 7, на втория вход броя на козунаците е 4, и отново броя на последващите елементи е много повече. Т.е., винаги ако въртя до броя на козунаците, индексацията ще излиза извън обхвата на масива, ето защо го сложих да върти до input.length. Не мога да се сетя как да го направя така, че да работи, ако цикъла върти до броя на козунаците.

Условие: 

Задача 5. Великденски козунаци

Предстои Великден и Деси е решила да изпече домашни козунаци за колегите си. Главните продукти, които ще трябват на Деси са: брашно и захар. Един пакет захар е 950 грама, а един пакет брашно е 750 грама. Напишете програма, която изчислява колко пакета захар и брашно трябва да купи Деси, за да й стигнат за направата на козунаците, като знаете за всеки един козунак по колко грама захар и брашно са изразходени. Също намерете кое е най-голямото количество захар и брашно, които са използвани.

Вход

От конзолата се чете 1 ред:

  •  Броят на козунаците – цяло число в интервала [1 ... 100]

За всеки козунак се чете:

  • Количество изразходвана захар (грамове) – цяло число в интервала [1 … 10000]
  • Количество изразходвано брашно (грамове) – цяло число в интервала [1 … 10000]

Изход

Да се отпечатат на конзолата 3 реда:

  • "Sugar: {брой нужни пакети захар}"
  • "Flour: {брой нужни пакет брашно}"
  • "Max used flour is {максимално количество грамове брашно, използвани за правенето на козунак} grams, max used sugar is {максимално количество грамове захар, използвани за правенето на козунак} grams."

Пакетите захар и брашно да бъдат закръглени към най-близкото цяло число нагоре.

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

Вход

Изход

Обяснения

3

400

350

250

300

450

380

Sugar: 2

Flour: 2

Max used flour is 380 grams, max used sugar is 450 grams.

Брой козунаци: 3

Козунак 1: 400 гр. захар, 350 гр. брашно

Козунак 2: 250 гр. захар, 300 гр. брашно

Козунак 3: 450 гр. захар, 380 гр. брашно

Общо нужна захар: 400 + 250 + 450 = 1100 гр.

Брой пакети захар: 1100 / 950 = 1.157... ~ 2 пакета

Общо нужно брашно: 350 + 300 + 380 = 1030 гр.

Брой пакети брашно: 1030 / 750 = 1.373... ~ 2 пакета

Най-голямо количество изразходено брашно: 380 грама

Най-голямо количество изразходена захар: 450 грама

Вход

Изход

Обяснения

4

500

350

560

430

600

345

578

543

Sugar: 3

Flour: 3

Max used flour is 543 grams, max used sugar is 600 grams.

Брой козунаци: 4

Козунак 1: 500 гр. захар, 350 гр. брашно

Козунак 2: 560 гр. захар, 430 гр. брашно

Козунак 3: 600 гр. захар, 345 гр. брашно                                                 

Козунак 4: 578 гр. захар, 543 гр. брашно

Общо нужна захар: 500 + 560 + 600 + 578 = 2238 гр.

Брой пакети захар: 2238 / 950 = 2.3557... ~ 3 пакета

Общо нужно брашно: 350 + 430 + 345 + 543 = 1668 гр.

Брой пакети брашно: 1668 / 750 = 2.224... ~ 3 пакета

Най-голямо количество изразходено брашно: 543 грама

Най-голямо количество изразходена захар: 600 грама

 

Моето решение: 

 https://pastebin.com/TrRK7qVU

Благодаря предварително!

 

Тагове:
twinsdz avatar twinsdz 16 Точки

For цикъла нямаше инкрементация (i++) и е по-добре да вземеш броя козинаци за броя завъртания. Или от 0 < kozunaci или 1 <= kozunaci. Освен това е по-добре да взимаш  let sugarQuantity = Number(input[index++]) и  let flourQuantity = Number(input[index++]); със index, който да създадеш като променлива от начало със стойност 1, защото ако ако ги взимаш със i++ i-то става още на първото завъртане по-голямо от input.length или  kozunaci и така излиза още на първия път от цикъла. 

https://pastebin.com/tvgMcZH8

1
viktorivanov28 avatar viktorivanov28 1 Точки

Поправих го и стана, благодаря!

 

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