06. Number Generator
https://pastebin.com/0eEtHNKT - код. 50/100 ми дава джъдж.
https://judge.softuni.bg/Contests/Practice/Index/540#5
Задача 6. Генератор на числа
Да се напише програма, която прочита от конзолата три цели числа – M, N и L, и генерира всички числа в диапазона от MNL до 111. От конзолата се чете едно специално и едно контролно число. За всяка комбинация от тройката числа се прави проверка:
- Ако се дели на 3 без остатък – към специалното число се добавя 5;
- Ако завършва на 5 – от специалното число се вади 2;
- Ако е четно число – специалното число се умножава по 2.
Трябва да се има предвид, едно число може да отговаря на повече от една проверка. В такъв случай трябва да се гледа приоритетът на операциите. Първо дали се дели на 3, после дали завършва на 5 и накрая дали е четно числото. Например:
972 се дели на 3 и е четно. В такъв случай изпълняваме само операцията с най-голям приоритет и към специалното число добавяме 5, но НЕ го умножаваме по 2 след това.
315 се дели на 3 и завършва на 5. Към специалното число добавяме 5.
В случай, че не отговаря на нито една от посочените проверки, НЕ се извършва операция и програмата продължава. Ако специалното число стане равно или по-голямо от контролното програмата приключва.
Вход
От конзолата се четат 5 числа, всяко на отделен ред:
- М – цяло число в интервала [1 … 9];
- N – цяло число в интервала [1 … 9];
- L – цяло число в интервала [1 … 9];
- Специално число – цяло число в интервала [0 … 100];
- Контролно число – цяло число в интервала [0 … 1000];
Изход
Отпечатването на конзолата зависи от резултата:
- Ако контролното число е достигнато се отпечатват 1 ред:
- “Yes! Control number was reached! Current special number is {специалното число}.”
- Ако контролното число НЕ е достигнато се отпечатва 1 ред:
- “No! {специалното число} is the last reached special number.”
Примерен вход и изход
Вход |
Изход |
Обяснения |
9 7 3 2 44 |
Yes! Control number was reached! Current special number is 48. |
973 – не се дели на 3, не завършва на 5 и не е четно => върху него не се извършват никакви операции. Специалното число е по-малко от контролното и програмата продължава. 972 - дели се на 3 => 2 + 5 = 7. Специалното число е по-малко от контролното и програмата продължава. 971 – не отговаря на условията и не се извършват операции 963 - дели се на 3 => 7 + 5 = 12 962 - четно => 12 * 2 = 24 961 - не отговаря на условията и не се извършват операции … 952 - четно => 24 * 2 = 48 48 >= 44 |
Вход |
Изход |
Обяснения |
1 1 7 1 308 |
No! 35 is the last reached special number. |
117 - дели се на 3 => 1 + 5 = 6 116 - четно => 6 * 2 = 12 115 - завършва на 5 => 12 – 2 = 10 114 - дели се на 3 => 10 + 5 = 15 113 - не отговаря на нито една проверка и програмата продължава 112 - четно => 15 * 2 = 30 111 - дели се на 3 => 30 + 5 = 35 35 < 308 |