Инопланетная неделя на разных планетах длительность года разная, а значит и рабочая неделя там тоже может быть не семидневной. известно, что длительность недели на некой далекой планете составляет x дней, также известно, что сейчас на этой планете день недели под номером d. определите, какой день недели был на далекой планете k дней назад. формат входных данных три целых числа: x - длительность недели на некой далекой планете (1 < x < 1000) d - номер текущего дня недели (1 < d < x) k - количество дней, которые со дня начало отсчета (1 < k < 109) формат выходных данных целое число: номер дня в недели для искомого дня примеры входные данные выходные данные 3 1 4 3
Давай будем K раз изменять наш текущий день на "вчерашний", т.е. уменьшать на 1. Если после очередного такого уменьшения мы получили, что наш текущий день стал равен 0, значит, мы уже перешли в последний день предыдущей недели. Тогда мы говорим, что наш текущий день равен X.
Схематично изобразил это на вложении 1.
Код на PascalABC
var x, d, k, // Числа из ввода
i : integer;
begin
read(x, d, k); // Ввод чисел
for i:=1 to k do // Будем постепенно идти на k дней назад
begin
d:=d-1; // Идём на один день назад
if (d < 1) then
d:=x; // Переходим на предыдущую неделю, если необходимо
end;
writeln(d); // Выводим ответ
end.
--------------------------------------------------
Вложено решение как файл.
Ввод: X ^ D ^ K С/П.
П2 -> П1 -> П0
ИП2 ^ ИП0 / [x] ИП0 * -
ИП1 - /-/ ИП0 +
^ ИП0 / [x] ИП0 * -
x=0 28 ИП0 С/П
На индикаторе номер нужного дня.