tat122
?>

Найдите наименьшее основенние системы счисления в которой запись числа 32 оканчивается на 8

Информатика

Ответы

Мартынова1638
Если в записи числа присутствует цифра 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
Для стека:
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
Сорян, когда из паскаля скопировал, абзацы некоторые удалились,а так всё работает. Делать нечего прост сегодня :)
 
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 оканчивается на 8
Ваше имя (никнейм)*
Email*
Комментарий*

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

lebedev815
snopovajulia
arina2403423
Юрьевич293
xachen
Sidorenko
fedoseevgleb
Ivanskvortsov25
natkoff5
marinakovyakhova
irinaastapova2011
daskal83
raa-0485428
Volodka
matoksana