Насоки и подсказки

Задачата може да се раздели на четири логически части:

  • Четене на входните данни от конзолата.
  • Проверка на всички числа в дадения интервал, съответно завъртане на цикъл.
  • Проверка на условията от задачата спрямо всяко едно число от въпросния интервал.
  • Разпечатване на числата.

Първата част е тривиална - прочитаме три цели числа от конзолата, съответно ще използваме тип int.

С втората част също сме се сблъсквали - инициализиране на for цикъл. Тук има малка уловка - в условието е споменато, че числата трябва да се принтират в обратен ред. Това означава, че началната стойност на променливата i ще е по-голямото число, което от примерите виждаме, че е M. Съответно, крайната стойност на i трябва да е N. Фактът, че ще печатаме резултатите в обратен ред и стойностите на i ни подсказват, че стъпката ще е намаляване с 1.

След като сме инициализирали for цикъла, идва ред на третата част от задачата - проверка на условието дали даденото число се дели на 2 и на 3 без остатък. Това ще направим с една обикновена if проверка, която ще оставим на читателя сам да построи.

Другата уловка в тази задача е, че освен горната проверка, трябва да направим още една - дали числото е равно на "спиращото" число, подадено ни от конзолата на третия ред. За да се стигне до тази проверка, числото, което проверяваме, трябва да премине през горната. По тази причина ще построим още една if конструкция, която ще вложим в предходната. Ако условието е вярно, заданието е да спрем програмата да печата, което в конкретния случай можем да направим с оператор break, който ще ни изведе от for цикъла.

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

Тестване в Judge системата

Тествайте решението си тук: https://judge.softuni.bg/Contests/Practice/Index/515#2.

results matching ""

    No results matching ""