Романенко
?>

Дается последовательность из n чисел. найдите максимальное произведение среди всех пар этих чисел. первая строка входного файла содержит целое число n(1< =n< =1000 в следующей строке n целых чисел, каждое из которых по модулю меньше или равно 1000.

Информатика

Ответы

tshelokova
Var ar:array of integer;
max,i,n,j:integer;
begin;
max:=-2147483648; //нижняя граница integer
writeln('Введите размерность массива:'); //массив всегда приятнее
readln(n);
setlength(ar,n+1); //задали размерность динамического массива
for i:=1 to n do
begin;
write('Введите ',i, ' элемент массива:');
readln(ar[i]);
end;
for i:=1 to n do
for j:=1 to n do
if max<ar[i]*ar[j] then max:=ar[i]*ar[j];
writeln('Result:',max);
end.
megaromeo
Сначала посмотрим, какое из чисел больше. Как в обычной арифметике: если вдруг надо вычесть из меньшего большее, мы вычитаем из большего меньшее и ставим в ответе знак минус.
Требуется сделать вычитание (группировка разрядов по 4 сделана для удобства чтения):
  111 0001 1011
- 101 0011 0101

Тут все хорошо, из большего вычитается меньшее.
Вычитаем "в столбик", как обычные числа, но помним, что система счисления двоичная, поэтому когда из 0 вычитается единица, то мы "занимаем единичку" у старшего разряда, уменьшая его на 1. Но, поскольку цифр-то всего две - 0 и 1, то заняв единицу в старшем разряде, мы понимаем, что там останется 0 или 1. А когда мы занимаем единицу? Да лишь тогда, когда от 0 должны отнять 1. Единичка из старшего разряда - это 10₂, т.е. на самом деле обычная десятичная двойка, и после вычитания из 10₂ единицы, получим единицу.
Как итог, в разряде:
0-0=0
1-1=0
1-0=1
0-1=1 и при этом в соседнем слева разряде надо тоже вычесть единицу по этим же правилам.

  111 0001 1011
- 101 0011 0101

       1 1110 0110

Это и есть ответ.
e90969692976
{у = ах2 – b для х изменяющегося от –7 до +12 с шагом +1.Значения а и b ввести с клавиатуры.Решить эту задачу с использованием всехвидов циклов (FOR, WHILE, REPEAT)}var a,b,x,y:integer;beginwriteln('привет,я alconafft');writeln('введи заначения перeменных а и б');writeln('введи значение а');readln(a);writeln('введи значение b');readln(b);writeln('хорошо,теперь протабулируем ф-цию на заданном отрезке,поехали))');for x:=-7 to 12 do//парметрический циклbeginy:=a*x*2-b;writeln('значение у= ',y,' при х= ',x);end;writeln('цикл с постусловием');x:=-7;repeatinc(x);y:=a*x*2-b;writeln('значение у= ',y,' при х= ',x);until(x=12);x:=-7;writeln('цикл с предусловием');while x<12 dobegininc(x);y:=a*x*2-b;writeln('значение у= ',y,' при х= ',x);end;end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Дается последовательность из n чисел. найдите максимальное произведение среди всех пар этих чисел. первая строка входного файла содержит целое число n(1< =n< =1000 в следующей строке n целых чисел, каждое из которых по модулю меньше или равно 1000.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Геннадьевна
zakaz6354
Alesander-Isaev684
annaar497
lazaren-ko
hachatryanlilit1983
Olgax732
Lolira64
shalashcoffee
Paikina Natalya30
symkifm
anastasiavilina
arturo95
Arsen-araqelyan20164