55:5=11
365:11≈33(34) берём "34", чтобы перехлестнуть 365.
Так как 11-ый член является замыкающим (перехлёстывающим 365), тогда смотрим по ближайшим:
34*10=340 (340+34=374) - подходит, но это не максимум!
365 mod 10= 36, а это значит, что последующий член будет больше 365, а именно 395.
В задании сказано, что d должно быть максимальным, а "34" - это допустимое, но не максимально число, удовлетворяющее условию, даже минимальное (по результату).
Проверка:
34*11=374, значит, когда на экране выведется s:=340, n:=50, то, зайдя по следующему циклу, получится, что s:= 374, n:=55. На следующий цикл программа не пойдёт.
ответ: d=34.
// PascalABC.NET 3.2, сборка 1370 от 24.12.2016
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ReadReal('a=');
var x:=power(10,a)+cos(a+1);
var y:=log10(abs(arctan(x)-sin(a*x)));
Writeln('x=',x,', y=',y)
end.
Пример
a= 2.105
x=126.35097753811, y=-0.162831822729058
2. Типовой "школьный" паскаль (как не надо учить)
program Vasya;
var
a,x,y:real;
begin
Write('a=');
Read(a);
x:=exp(a*ln(10))+cos(a+1);
y:=ln(abs(arctan(x)-sin(a*x)))/ln(10);
Writeln('x=',x,', y=',y)
end.
Пример
a=2.105
x=126.35097753811, y=-0.162831822729023
3. Сравнение решений
- "школьный" вариант длиннее. Больше текста - дольше писать, больше шансов сделать ошибку.
- результат вычисления y различный. Разница составляет вроде немного - всего 0.000000000000035 (это 0.35×10⁻¹³), но если делать много вычислений, ошибки могут накапливаться.
Вычисленное с более высокой точностью (и округленное до такой же, как в паскале разрядности) значение y равно -0.162831822729052, т.е. "современное" решение оказывается еще и на один порядок точнее. За счет чего? За счет уменьшения ошибок при меньшем количестве вычислений - их сократили функции power и log10.