М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации

Составьте программу, проверяющую есть ли в двумерном массиве a (n,n) столбцы, все элементы которых различны.

👇
Ответ:
lebedevamilp00sr9
lebedevamilp00sr9
13.09.2020
                      Const n=4;
Var x:array [1..n,1..n] of integer;
k,s,i,j:integer;
begin  
 randomize;   
 for i:=1 to n do begin      
  for j:=1 to n do begin     
       x[i,j] := random(100);      
      write(x[i,j]:6);   
     end;      
  writeln; 
   end; 
  for i := 1 to n do
    for j := 1 to n do   
   for k := j+1 to n do    
    if x[j,i]=x[k,i]
then 
writeln('NO') 
else 
writeln ('YES');
readln;
end.       
4,8(30 оценок)
Открыть все ответы
Ответ:
fox368
fox368
13.09.2020

Пояснення:В качестве кандидатов нужно рассматривать числа, не превышающие  

(

S

1

)

2

, так как в худшем случае составное число вида  

x

2

будет иметь два наибольших делителя  

x

и 1. Время работы этого алгоритма  

O

(

S

4

)

. Можно существенно ускорить вычисления, если учесть, что при поиске разложения на множители числа  

N

можно рассмотреть только числа не превышающие  

N

. Наибольшим делителем числа  

N

будет  

N

a

, где  

a

– наименьший делитель, а вторым наибольшим делителем будет либо  

N

b

, где  

b

– второй по величине делитель  

N

(также либо число, либо  

a

2

), либо  

a

, если  

N

является произведением двух различных чисел, либо 1, если  

N

=

a

2

.

4,6(95 оценок)
Ответ:
Kurgan4511
Kurgan4511
13.09.2020
Заполнение с клавиатуры:

Var
   A:array[1..5] of integer;
   i,O,P:integer;
Begin
Write('Введите массив A(5): ');
O:=0;
P:=0;
For i:= 1 to 5 do
    Begin
    Read(A[i]);
    if A[i] < 0 then O:=O+1
    else if A[i] > 0 then P:=P+1;
    End;
WriteLn('Количество отрицательных: ',O);
WriteLn('Количество положительных: ',P);
End.

Заполнение случайными числами:

Const
   N = 5;
Var
   A:array[1..N] of integer;
   i,O,P:integer;
Begin
Randomize;
Write('Введите массив A(5):');
O:=0;
P:=0;
For i:= 1 to N do
    Begin
    A[i]:=random(2*N+1)-N;
    Write(' ',A[i]);
    if A[i] < 0 then O:=O+1
    else if A[i] > 0 then P:=P+1;
    End;
WriteLn;
WriteLn('Количество отрицательных: ',O);
WriteLn('Количество положительных: ',P);
End.
4,4(44 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ