Хабарьева Андрей1056
?>

Дан массив из n элементов . каждый элемент равен 0, 1 или 2. переставить элементы так, чтобы сначала располагались все нули, затем все единицы и, наконец все двойкидополнительный массив не использовать) .

Информатика

Ответы

Энверович
1. В "реальном мире" это решается примерно так:

// PascalABC.NET 3.1, сборка 1198 от 11.03.2016
begin
  var a:=ArrRandom(ReadInteger('n='),0,2); a.Println;
  a.Sorted.Println
end.

Тестовое решение:
n= 15
1 2 0 2 2 0 2 0 2 0 0 1 0 0 2
0 0 0 0 0 0 0 1 1 2 2 2 2 2 2

2. Но, поскольку считается, что школьникам больше заняться нечем, их заставляют писать примерно в таком стиле (и время займет, и ощибок понаделают):

// PascalABC.NET 3.1, сборка 1198 от 11.03.2016
const
  nn=100;
var
  i,j,n,t:integer;
  a:array[1..nn] of integer;
begin
  Write('n='); Read(n);
  Randomize;
  for i:=1 to n do begin
    a[i]:=Random(3);
    Write(a[i],' ')
    end;
  Writeln;
  for i:=1 to n-1 do
    for j:=1 to n-1 do
      if a[j]>a[j+1] then begin
        t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t
        end;
  for i:=1 to n do Write(a[i],' ');
  Writeln;
end.

Тестовое решение:
n=15
0 1 1 0 2 1 0 2 1 2 1 0 0 2 0
0 0 0 0 0 0 1 1 1 1 1 2 2 2 2
gub191025
ответ 51.
И так, вам ввели начальные значения переменных. Вас требуют проверить два условия. Если результатом его проверки будет true(т.е. истина, а истина в данном случае будет, только если оба условия будут истинными) то вы должны выполнить следущие действия: x=3*a+2*b+c, если результатом проверки логических выражений будет false(т.е. ложь, а ложь в данном случае будет при условии, что хотя бы 1 из данных логических выражений ложное, ну или оба выражения ложные), то тогда вы выполняете это: x=5*a-b+c.
И так, выполняем алгоритм
10>5 и 5>6? Нет, т.к. второе условие не выполняется. Значение логического выражения false, значит выполняем действия по ветке else(иначе), x=5*10-5+6=51
Всё. На экран выведится число 51.
маловато для такого развёрнутого объяснения, так что отметьте хотя бы как лучший ответ \_(•_•)_/
s2010av565

import java.util.Scanner;

class Main {

   public static void main(String [ ] args) {

       // Инициализация нужных переменных

       Scanner sn = new Scanner(System.in);

       double n = sn.nextInt();

       boolean ts = false;

       // До тех пор, пока n > 1 и n != 2, будет находится его корень. Если в один момент корень будет = 2, то выведется "YES"

       while(n > 1) {

           n = Math.sqrt(n);

           if(n == 2) {

               ts = true;

               break;

           }

       }

       if(ts) {

           System.out.print("YES");

       }

       else {

           System.out.print("NO");

       }

   }

}

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

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

Дан массив из n элементов . каждый элемент равен 0, 1 или 2. переставить элементы так, чтобы сначала располагались все нули, затем все единицы и, наконец все двойкидополнительный массив не использовать) .
Ваше имя (никнейм)*
Email*
Комментарий*

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

egorov
ooottdi
laktionova-natal
re-art
sensenagon50
rusdtver
dimoni86
КараханянКусков
Dmitrievna405
olofinskayae
Гарик383
beyound2006193
dp199088206
soa8690
director3