Сначала немного математики.
Мы получили выражение для вычисления значения полинома по схеме Горнера, оптимизирующей число операций и избавляющей нас от использования возведения в степень.
Ниже - текст программы на Pascal.ABC. На самых старых версиях Паскаля инициализация элементов массива не может объединяться с его описанием и её следует выполнить отдельно в виде набор операторов присваивания.
var
a: array[1..4] of real := (-0.5, 0.11, -2.66, 10);
x, y: real;
i: integer;
begin
for i := 1 to 4 do
begin
x := a[i];
y := 3 * (4 + x * (1 + 3 * x));
Writeln('x=', x:5:2, ' y=', y:8:4)
end
end.
Тестовое решение:
x=-0.50 y= 12.7500
x= 0.11 y= 12.4389
x=-2.66 y= 67.7004
x=10.00 y=942.0000
Var a, b: real;
begin
a:=4;
b:=4;
a:=2*a+3*b;
b:=a/2*b;
write(b);
end.
Ответ
40
То эта информация полезная... :)
function sum(i, n: <em>integer</em>): <em>boolean</em>;
var
a, b: <em>integer</em>;
begin
a := i;
repeat
b := b + a mod 10;
a := a div 10;
until (a = 0);
sum := (b = n);
end;
var
n, i, k: <em>integer</em>;
begin
readln(n, k);
for i := 1 to k do
if sum(i, n) then
writeln(i);
end.