В худшем случае нам могут дать x=10, y=±10, z=±10. При таких значениях мы получим сумму , что меньше
, поэтому мы можем использовать тип integer для вычислений.
var
x, y, z, // Числа из ввода
st, // ответ процедуры возведения в степень
ans // ответ на задачу
: integer;
// Возведение числа A в степень B
// После вызова процедуры ответ хранится в st
procedure pow(A, B: integer);
var i : integer;
begin
st:=1; // Изначальный ответ...
for i:=1 to B do // ...который мы B раз...
st:=st*A; // ...умножаем на A.
end;
begin
read(x, y, z); // Ввод чисел
pow(x, 5); // Возводим x в степень 5
ans:=st; // Сохраняем результат возведения в ans
pow(y, 4); // Возводим y в степень 4
ans:=ans+st; // Прибавляем результат возведения к ans
pow(z, 8); // Возводим z в степень 8
ans:=ans+st; // Прибавляем результат возведения к ans
writeln(ans); // Выводим ответ
end.
----------------------------
Файл программы прикреплён ниже.
Давай будем 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.
--------------------------------------------------
Вложено решение как файл.
program apscala;var a,b,max:integer;beginreadln(a,b);if a>b then max:=a else max:=b;max:=-max;writeln(max);end.