xarimapula
13.12.2022 22:29

6. сортировка кубиков ваня придумал новый алгоритм сортировки и сейчас тренируется на кубиках с цифрами, чтобы понять, как он работает. перед ним на столе лежат кубики с числами от 1 до 10 (на каждом кубике записано одно число), выложенные в таком порядке: 8 9 10 4 5 6 1 7 2 3 за одну операцию ваня берет несколько рядом стоящих кубиков как одну конструкцию, переворачивает и кладет на прежнее место. например, если бы кубики лежали в таком порядке: 1 2 3 4 5 6 7 8 9 10, а ваня взял бы кубики начиная с кубика с цифрой 4 и заканчивая кубиком с цифрой 9 и перевернул бы, то получилась бы такая последовательность: 1 2 3 9 8 7 6 5 4 10. то, что какие-то кубики после выполнения подобных операций окажутся лежащими вверх ногами, ваню не смущает. кроме того, ваня различает кубик с цифрой 6 и кубик с цифрой 9 (они разного цвета, поэтому невозможно одну цифру получить из другой при перевороте). ване понять, какое наименьшее количество таких операций потребуется, чтобы кубики стали лежать в порядке возрастания: 1 2 3 4 5 6 7 8 9 10. комментарий. если бы у него было всего 4 кубика и они лежали в таком порядке: 4 1 3 2, то наименьшее количество операций было бы равно двум: сначала переворачиваем кусок из первых двух кубиков слева, получаем 1 4 3 2, затем переворачиваем кусок из трех кубиков справа, получаем 1 2 3 4.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
MoDeRFeeD3
29.04.2022 09:58
{ ответ дан на языке Pascal }
//1-ая задача
PROGRAM Solution(INPUT, OUTPUT);

VAR
  num: INTEGER;
  n1, n2, n3: INTEGER;

BEGIN
  WRITE('Введите 3-значное число: ');
  READ(num);

  n1 := (num DIV 100);
  n2 := (num MOD 100 MOD 10);
  n3 := (num MOD 100 DIV 10);
  IF(n1 + n2 + n3) MOD 2 = 0
  THEN WRITELN('Чётное')
  ELSE WRITELN('Нечётное');
END.

//2-ая задача
PROGRAM Solution(INPUT, OUTPUT);

VAR
  num: INTEGER;
  n1, n2, n3: INTEGER;

BEGIN
  WRITE('Введите 3-значное число: ');
  READ(num);

  n1 := (num DIV 100);
  n2 := (num MOD 100 MOD 10);
  n3 := (num MOD 100 DIV 10);
  IF(num * num) = (n1 * n1 * n1) + (n2 * n2 * n2) + (n3 * n3 * n3)
  THEN WRITELN('Равен')
  ELSE WRITELN('Не равен');
END.

//3-я задача
PROGRAM Solution(INPUT, OUTPUT);

VAR
  a, b, c: INTEGER;

BEGIN
  WRITE('Введите a, b, c: ');
  READ(a, b, c);

  IF(a = b) OR (b = c) OR (c = a)
  THEN WRITELN('Равнобедренный')
  ELSE WRITELN('Не равнобедренный');
END.
0,0(0 оценок)
Ответ:
Appolinaria06
29.04.2022 09:58

Первая

var n,x:integer;

begin

 readln(n);

 while n <> 0 do begin

  x:=x + n mod 10;

  n:=n div 10;

 end;

 if(x mod 2 = 0) then

   writeln('true')

 else

   writeln('false');

end.

Вторая

var x,z,s:integer;

begin

 readln(x);

 if (x > 99) and (x < 1000) then begin

   s:=x;

   while s<>0 do begin

     z:=z+s mod 10;

     s:=s div 10;

   end;

   if(x*x) = (z*z*z) then

     writeln('true')

   else

     writeln('false');

 end

 else

   writeln('Число должно быть 3-ех значным!');

end.

Третья

Var a,b,c:Real;  

Begin  

 Writeln('Введите a');

 Readln(a);

 Writeln('Введите b');

 Readln(b);

 Writeln('Введите c');

 Readln(c);

 if (a=b) or (a=c) or (b=c) then

   writeln ('true')

 else

   writeln ('false);

end.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота