Var
i,min,max:integer;
a:array[1..70]of integer;
begin
for i:=1 to 70 do
begin
a[i]:=random(100);
write(a[i],' ');
if i=1 then min:=a[i]
else if a[i]<min then min:=a[i];
if a[i]>max then max:=a[i];
end;
writeln;
writeln('Ответ: ',max-min);
<span>end.</span>
Можешь не благодарить
var
a,n:integer;
begin
readln(a);
while a<>0 do
begin
if (a mod 5=0)or (a mod 7=0)then inc(n);
readln(a);
end;
writeln(n);
end.
Пусть выбраны гирьки с массами M1, M2, ..., Mn и ими удалось массу X.
Тогда имеет место равенство X = a1 * M1 + a2 * M2 + ... + an * Mn,
где ai = 0, если i-ая гирьке не участвовала в взвешиваниях, -1, если лежала на той же чаше весов, что и масса, которкю нужно отмерить, и +1, если на другой чаше весов.
Каждый из коэффициентов принимает одно из трёх значений, тогда при помощи n гирек можно отмерить не более, чем 3^n различных масс. 3^3 < 40 + 1 < 3^4, значит, гирек нужно не менее четырёх.
Докажем, что взяв гирьки с массами 1, 3, 9 и 27, можно отмерить любую массу от 1 до 40. Будем это делать по индукции, доказав, что при помощи гирек 1, 3, 9, ..., 3^k можно отмерить любую массу от 1 до (3^k - 1)/2.
<u>База индукции.</u> При помощи одной гирьки массой 1 действительно можно отмерить массу 1.
<u>Переход.</u> Пусть для k = k' всё доказано. Докажем и для k = k' + 1.
- Если нужно отмерить массу X <= (3^k' - 1)/2, то это можно сделать при помощи k' гирек.
- Пусть надо отмерить массу (3^k' - 1)/2 < X <= (3^(k' + 1) - 1)/2. Кладём на другую чашу весов гирьку массой 3^k'. Тогда остаётся нескомпенсированная масса X - 3^k' <= (3^k' - 1)/2, которую, по предположению, можно получить. Ура!
Ответ. 1, 3, 9, 27.
Контекстное, вроде больше нет