Loading...
vkachanov avatar vkachanov 17 Точки

[Programming Basics] Задача 6 от изпита на 07 Май 2017 - възможна грешна интерпретация на условието

Здравейте,

след като изкарах Programming Basics на Java, реших да си реша изпита и на C#. Стигайки до задача 6 реших да я реша по друг начин от този, който използвах на изпита и установих, че е възможно условието да бъде подвеждащо за някой. Там пише "Да се напише програма, която прочита от конзолата три цели числа M, N и L, и генерира всички числа в диапазона от MNL до 111".

Нека вземем за пример числата в първият нулев тест - М = 9, N = 7 и L = 3. Четейки буквално условието трябва да генерираме числата от 973 до 111. Можем да го направим като преобразуваме входните 3 числа до 1 трицифрено (в случая 973) и пуснем един обратен (намаляващ) for-цикъл от трицифреното число (в случая 973) до 111. Това ще генерира следната поредица от числа: 973, 972, 971, 970, 969 и т.н., върху които със if-проверки да извършим останалите манипулации описани в условието.

Това решение, макар и следващо условието цитирано по-горе се счита за грешно от judge. За да стигнем до верните отговори трябва да направим 3 цикъла, които съответно броят от М до 1, от N до 1 и от L до 1. Това обаче генерира следната поредица от числа (пак спрямо горния пример): 973, 972, 971, 963 , 962, 961, 953, 952, 951 и т.н., което може да се счете за не много отговарящо на цитираното условие, защото пропуска доста от числата между 973 и 111.

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

Приятна вечер

Тагове:
1
Programming Basics 29/05/2017 16:24:58
JivkoJelev avatar JivkoJelev 235 Точки

А всъщност от 971 как цикъла отива на 963 ? За 0-те разбрахме че се изключват , но как прескача цикъла и в какви ситуации?

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