давай будем 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.
вложено решение как файл.
(см. объяснение)
Объяснение:
Предисловие:
Вообще говоря, верно равенство:
Поэтому предложенное вами задание неуместно, ибо считается в уме.
Непонятно так же, какое решение от Вас ждет преподаватель.
Я предполагаю, что учитель требует лобовое неоптимальное медленное решение, поскольку в противном случае задача теряет смысл. В самом деле, что писать блок схему вот этого:
##
(100*101*201/6).Print;
Итак, не будем долго тянуть и, поняв тупость задания, начнем что-то делать. Положим у нас будет цикл (лучше for). И мы будем к некоторой переменной sum добавлять счетчик в квадрате.
То есть код такой (новый и ныне единственно предпочтительный синтаксис, присутствующий в PascalABC.NET):
##
var sum:= 0;
for var i:= 1 to 100 do
sum+= i*i;
sum.Print;
Но от нас требуют блок схему (хотя тоже непонятно зачем).
Но требую и требуют:
(см. прикрепленный файл)
Задание выполнено!
Поделитесь своими знаниями, ответьте на вопрос:
Даны 2 целых числа n и m. найти значение выражения f=(n-2m)/( n+m) в квадрате. исходные данные запросите с клавиатуры и выведите результат на экран.