Const
N = 33;
Var
A:array[1..N] of real;
i,k:integer;
Begin
Randomize;
k:=0;
For i:= 1 to N do
Begin
if random(2) = 1 then A[i]:=random*N
else A[i]:=0;
Write(A[i]:0:3,' ');
if A[i] = 0 then k:=k+1
End;
WriteLn;
WriteLn('Количество нулей в массиве: ',k);
ReadLn
End.
Переводим в двоичную систему:
– Первое условие: x & 1010 ≠ 0
Условие истинно для x, у которых первый или третий бит ненулевые (биты я считаю справа налево, начиная с нуля)
– Второе условие: (x & 100111 = 0) && (x & 10010101 = 0)
Условие истинно для x, у которых биты 0, 1, 2, 4, 5, 7 нулевые
Нужно поставить третье условие так, чтобы для любого натурального числа выполнялось хотя бы одно из условий, тогда дизъюнкция трёх условий будет истинна. Найдем, какие числа не удовлетворяют первым двум условиям, и подберём третье условие так, чтобы ему все такие числа удовлетворяли:
Первое условие не выполнено для чисел, двоичная запись которых имеет вид ...____0_0_, _ заменяет любую двоичную цифру. Добавляем второе условие: ...?_??0?0?, – на месте по крайней мере одного из вопросиков стоит 1.
Третье условие говорит о том, что на тех местах, где в A единицы, в числе должны стоять нули. Нужно, чтобы этому условию удовлетворяли все "нехорошие числа", про которые мы точно знаем, что в них нули стоят на первом и третьем местах, а в других местах – может стоят, а может и нет. Поэтому подходят только такие натуральные A: 0010, 1000, 1010. Наибольшее из них 1010(2) = 10(10).
Конечно, второе условие можно было бы сразу не рассматривать, если догадаться, о чём идёт речь.
открой любой файл ворда, и внизу на панели есть такая штука где показывает количество слов и страницы, нажми туда правой кнопкой мыши и выбери "символы с пробелами". Будет как на фото в прикрепленных. А количество информации определишь по формуле, либо напиши в комменты под ответом свое количество знаков, я скину сколько это информации
Program long;
uses Crt;
const n=5;
type Vec=array [1..n] of integer;
var A, B, C: Vec;
i,j,k, Col: integer;
Pro: longint;
a1, a2: integer;
begin
ClrScr;
Randomize;
Col:=1; Pro:=1;
WriteLn ('Massiv A:');
for i:=1 to n do
begin
A[i]:=500+random(2000);
Write(A[i]:6);
if A[i] >1000 then
begin
B[Col]:=A[i]; Col:=Col+1;
end;
end; WriteLn;
Col:=Col-1; WriteLn;
WriteLn ('Massiv B:');
for i:=1 to Col do
WriteLn(B[i]);
WriteLn;
k:=1;
for i:=1 to n do
begin
a2:=B[i] mod 10;
a1:=B[i] div 1000;
if sqr(a1)<sqr(a2) then
begin
C[k]:=B[i];
k:=k+1;
end;
end;
for i:=1 to k-1 do
Pro:=Pro*C[i];
WriteLn ('Pro=',Pro);
ReadLn;
end.