В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Lololox222
Lololox222
07.10.2022 06:54 •  Информатика

Построить "дерево", найти кратчайший путь


Построить дерево, найти кратчайший путь

Показать ответ
Ответ:
Данька0007
Данька0007
08.04.2021 20:17
Магический квадрат с n сторон

const
  mn = 16;
var
  p: Boolean;
procedure Swap(var a, b: Integer);
var
T: Integer;
begin
T := a; a := b; b := T
end;
procedure CreateMagic(n: Integer);
var
i, j, k, s, b, r, m: Integer;
a: Array[1.. mn, 1.. mn] Of Integer;
begin
  p := True; 
if Odd(n) Then
begin
i := 1; j := Succ(n div 2);
for k := 1 To Sqr(n) do
begin
a[i, j] := k;
if k mod n = 0 Then Inc(i)
Else
begin
Dec(i); Inc(j);
if i = 0 Then i := n;
if j > n Then j := 1
end
end;
  end
Else
if n mod 4 = 0 Then
begin
k := 1;
for i := 1 To n Do
for j := 1 To n Do
begin
a[i, j] := k; Inc(k)
end;
j := 2; m := n div 2;
for i := 1 To m Do
for k := 1 To m Div 2 Do
begin
if j = Succ(m) Then j := 2
Else
if j = (m + 2) Then j := 1;
s := Succ(n - i); b := Succ(n - j);
Swap(a[i, j], a[s, b]);
Swap(a[i, b], a[s, j]);
Inc(j, 2)
end
  end
Else
if n <> 2 Then
begin
k := 1;
for i := 1 To n Do
for j := 1 To n Do
begin
a[i, j] := k; Inc(k)
end;
  r := Pred(n div 2) div 2; m := n div 2;
for i := 1 To m Do
begin
j := i;
for k := 1 To r Do
begin
if j > m Then j := 1;
s := Succ(n - i); b := Succ(n - j);
Swap(a[i, j], a[s, b]);
Swap(a[i, b], a[s, j]);
Inc(j)
end
  end;
i := 1;
for k := 1 To m Do
begin
if j > m Then j := 1;
s := Succ(n - i);
Swap(a[i, j], a[s, j]);
Inc(i); Inc(j)
  end;
i := 1; j := r + 2;
for k := 1 To m Do
begin
if j > m Then j := 1;
b := Succ(n - j);
Swap(a[i, j], a[i, b]);
Inc(i); Inc(j)
end
  end
  Else p := False;
if p Then
begin
for i := 1 To n Do
begin
for j := 1 To n Do
Write(a[i, j]: 4);
WriteLn
end
end
Else
WriteLn( 'do not exists' )
end;
var
  n: Integer;
begin
WriteLn('n = '); ReadLn(n);
  CreateMagic(n);
end.
0,0(0 оценок)
Ответ:
David1111111577
David1111111577
31.01.2022 01:57
Давайте рассмотрим данную задачу. У нас есть числа А и В, а мы должны найти число C, которое удовлетворяет условию А < C < B. В данном случае А = 1278, B = 6916.

Для начала переведем числа А и В в двоичную систему счисления. Чтобы это сделать, разделим число на 2 и запишем остаток до тех пор, пока не получим ноль. Затем возьмем все остатки в обратном порядке и сложим их, чтобы получить число в двоичном виде.

Перевод числа 1278 в двоичную систему счисления:
1278 / 2 = 639 (остаток 0)
639 / 2 = 319 (остаток 1)
319 / 2 = 159 (остаток 1)
159 / 2 = 79 (остаток 1)
79 / 2 = 39 (остаток 1)
39 / 2 = 19 (остаток 1)
19 / 2 = 9 (остаток 1)
9 / 2 = 4 (остаток 1)
4 / 2 = 2 (остаток 0)
2 / 2 = 1 (остаток 0)
1 / 2 = 0 (остаток 1)

Таким образом, 1278 в двоичной системе счисления будет равно 10011111110.

Перевод числа 6916 в двоичную систему счисления:
6916 / 2 = 3458 (остаток 0)
3458 / 2 = 1729 (остаток 0)
1729 / 2 = 864 (остаток 1)
864 / 2 = 432 (остаток 0)
432 / 2 = 216 (остаток 0)
216 / 2 = 108 (остаток 0)
108 / 2 = 54 (остаток 0)
54 / 2 = 27 (остаток 0)
27 / 2 = 13 (остаток 1)
13 / 2 = 6 (остаток 1)
6 / 2 = 3 (остаток 0)
3 / 2 = 1 (остаток 1)
1 / 2 = 0 (остаток 1)

Таким образом, 6916 в двоичной системе счисления будет равно 1101100011100.

Теперь, чтобы найти число C, которое удовлетворяет условию А < C < B, нам нужно выбрать число между 10011111110 и 1101100011100.

Давайте сравним каждую позицию (бит) числа А с позиции соответствующей числа В и найдем первое отличающееся место.

10011111110
1101100011100

Мы видим, что первое отличающееся место находится в седьмой позиции справа (отсчет начинается с 0). В числе А в этой позиции стоит 1, а в числе В - 0.

Теперь нам нужно выбрать число C, в котором будут те же биты, что и в числе А, за исключением седьмой позиции, где число C должно иметь значение 0.

Таким образом, 100110111110 будет числом C в двоичной системе счисления, удовлетворяющим условию А < C < B.

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