Пример задания.
Определите, при каком наименьшем значении b в результате выполнения следующего алгоритма будет напечатано число 100:
var a,b,t,k: integer;
function F(x: integer): integer;
begin
if x mod 2 = 0 then F := 1; else
F := 0;
end;
BEGIN
a := 100;
readln(b);
k : = 0 ;
for t := a to b do
begin
k : = k + F (t) ;
end;
write(k);
END.
Посмотрим, что происходит, в цикле:
k : = k + F (t) ;
При этом F может быть равно либо 0, либо 1, в зависимости от тогда какое будет x или счетчик цикла, то есть а:
if x mod 2 = 0 then F := 1; else
F := 0;
Так как цикл for... предполагает последовательное прохождение шагов, то а будет меняться от 100, потом 101, и т.д.
Чтобы в сумме k дало нам 100, необходимо, чтобы было 100 четных элементов. То есть от 100 до и должно быть ровно 100 четных чисел, таким образов b=298.
Ответ 298.