06. Cake , While-Loop - Exercise
6. Торта
Поканени сте на 30-ти рожден ден, на който рожденикът черпи с огромна торта. Той обаче не знае колко
парчета могат да си вземат гостите от нея. Вашата задача е да напишете програма, която изчислява броя на
парчетата, които гостите са взели, преди тя да свърши. Ще получите размерите на тортата в сантиметри
(широчина и дължина – цели числа в интервала [1...1000]) и след това на всеки ред, до получаване на
командата "STOP" или докато не свърши тортата, броят на парчетата, които гостите вземат от нея. Парчетата
са квадратни с размер 1 см .
Да се отпечата на конзолата един от следните редове:
• "{брой парчета} pieces are left." - ако стигнете до STOP и има останали парчета торта.
• "No more cake left! You need {брой недостигащи парчета} pieces more."
https://pastebin.com/nubF982E 92/100%
Защо така се получава?
Махни равното от първата проверка, където брейкваш цикъла.Защото си противоречиш със долната проверка , така реално 0 я ползваш и когато са повече и когато са по малко . Когато вземат парчета колкото е тортата просто стават 0 парчета. Реално тортата си е стигнала за всички и не е останало нищо. Тествах го дава 100/100! 🙂
А да и колежката горе е права това с error no cake го махаш няма смисъл от него поне на тоя етап от обучението
Здравей,
Да, определено има доста валидни решения из форума и благодаря че добави още едно, но предпочитам сам да си решавам задачите, а не просто да ми изпише 100 точки за копиране на чужд код.
Като знам какви проверки и тестове за грешки прави judge ( с всякакви реални и нереални числа като входове) реших да подсигуря входовете на тортата ми (както ясно се вижда) да са положителни числа. Защо ли? Ами за да не направят някоя беля децата на рождения ден (ако има такива) и въведат в програмата ми две отрицателни числа и получат непредвидена торта извън бюджета за рождения ден (която може да не е и малко, (-10 * -15) и ето имаш още 150 парчета торта като магия). Аз лично не бих позволил това да се случи.
Знам знам, изглежда различна защото всички са я решили по друг начин - различен while и break от моя, но този начин ми допадна още от началото и като гледам логиката е абсолютно същата. Предната задача беше подобна и работеше на 100% и по двата начина, независимо дали повтаряш while със условие команда и чупиш break със преминаване на граница бройки или обратното, нямаше никакво значение.
Единственото обяснение което мога да си дам е че съществува "стандарт на кодиране" за задачата и може да е напълно вярна само по един начин което доста би ограничило нетипичните, но не по-малко оптимизирани решения.