var a: array[1..100] of real; i, n: integer; min, max: real; k: integer;
begin {ввод массива} if handsfree then n := random(20) + 5 else begin write('n = '); readln(n); end;
writeln('Данные массива:'); for i := 1 to n do begin if handsfree then begin a[i] := random(100); write(a[i], ' '); end else readln(a[i]); end; writeln();
{подсчет элементов} k := 0; for i := 1 to n do if a[i] > 5 then k := k + 1; writeln(k); end.
Программа должна вывести 89, то есть N после цикла должна стать равной 89. Изначально N была равна 5, каждый повтор цикла к N прибавляется 6. Определим количество повторов цикла (сколько раз к N должна быть прибавлена 6 для получения числа 89): 5+6*x = 89 6*x = 84 x = 14 То есть цикл должен совершить 14 повторов.
Каждый раз к S прибавляется D (которую нужно найти), изначально S = 83. Нам удобнее прибавлять D к нулю, а не к 83, поэтому вычтем из 1200 83 и приравняем S к нулю. Условие в цикле теперь будет выглядеть как S <= 1117
Нам нужно наибольшее S, при котором цикл совершает 14 повторов. Чем больше значение D, тем меньше повторов совершит цикл. Найдем наименьшее целое D, при котором цикл совершает 13 повторов, и возьмем предыдущее целое, это и будет наибольшее D, при котором цикл совершит 14 повторов. Цикл завершается после того, как условие перестанет выполняться, то есть при s > 1117. Составим неравенство:
13*d > 1117 d > 85,92
То есть наименьшее D, при котором цикл совершит 13 повторов - 86, значит наибольшее D, при котором цикл совершит 14 повторов - 85. ответ 85
26475 = 2*10000 6*1000 4*100 7*10 5*1
3651 = 0*10000 3*1000 6*100 5*10 1*1