Если в записи числа присутствует цифра 8, то её основание не может быть меньше 9. В девятиричной системе двух разрядов достаточно для представления числа 88(9)=9х8+8=80(10), поэтому в системе с любым рассматриваемым нами основанием число 32 будет двухзначным. Запишем 32 в расширенной форме в системе счисления по основанию n: 32(10)=a x n + b. По условию запись числа оканчивается цифрой 8, т.е. b=8. Тогда an+8=32 или an=24. Остается решить полученное уравнение в целых числах относительно минимального n≥9: n=24/a Разложим 24 на множители: 24 = 2 х 2 х 2 х 3, ⇒ а ∈ (2, 3, 4, 6, 8, 12, 24) a=2 ⇒ n=12 a=3 ⇒ n=8, что уже меньше 9 и большие значения a можно не рассматривать. Полагая а=2 и n=12 получаем запись 28 в двенадцатиричной системе. Проверка: 28(12)=2х12+8=24+8=32(10). ответ: 12
pechyclava
19.05.2020
Для стека: const MAX_SIZE = 100; var size, n: integer; stack: array[1..MAX_SIZE] of integer;
procedure push(a: integer); begin inc(size); stack[size] := a; end;
procedure view; var i: integer; begin for i := 1 to size do write(stack[i], ' '); writeln; end;
Для очереди: const MAX_SIZE = 100; var head, tail: integer; queue: array[1..MAX_SIZE] of integer;
procedure push(a: integer); begin queue[tail] := a; inc(tail); end;
procedure view; var i: integer; begin for i := head to tail - 1 do write(queue[i], ' '); writeln; end;
И стек и очередь реализованы с массива. Нужно следить, чтобы размер структуры не был больше размера массива
Ligacom
19.05.2020
Сорян, когда из паскаля скопировал, абзацы некоторые удалились,а так всё работает. Делать нечего прост сегодня :)
var s,i,min,max,m,n: integer; var a: array[1..15] of integer; begin for i:=1 to 15 do begin a[i]:=random(100); write(a[i],' ') end;
writeln; m:=a[1];n:=a[1];
for i:=1 to 15 do begin if m<a[i] then begin m:=a[i]; min:=i; end; if n>a[i] then begin n:=a[i]; max:=i; end; end; if max<min then begin s:=max;max:=min;min:=s; end;
for i:=1 to ((abs(max-min)) div 2 +1) do begin s:=a[min]; a[min]:=a[max]; a[max]:=s; min:=min+1; max:=max-1; end; for i:=1 to 15 do write(a[i],' '); end.
Запишем 32 в расширенной форме в системе счисления по основанию n:
32(10)=a x n + b.
По условию запись числа оканчивается цифрой 8, т.е. b=8.
Тогда an+8=32 или an=24.
Остается решить полученное уравнение в целых числах относительно минимального n≥9: n=24/a
Разложим 24 на множители: 24 = 2 х 2 х 2 х 3, ⇒ а ∈ (2, 3, 4, 6, 8, 12, 24)
a=2 ⇒ n=12
a=3 ⇒ n=8, что уже меньше 9 и большие значения a можно не рассматривать.
Полагая а=2 и n=12 получаем запись 28 в двенадцатиричной системе.
Проверка: 28(12)=2х12+8=24+8=32(10).
ответ: 12