Д.О. Игорь
?>

Среди приведённых ниже трёх чисел, записанных в десятичной системе счисления (основание системы счисления указано в скобках рядом с числом), найдите число, в двоичной записи которого наименьшее количество единиц. В ответе запишите количество единиц в двоичной записи этого числа. 59(10), 71(10), 81(10)

Информатика

Ответы

qadjiyevaaynura

59_{10} =111011_{2}\\71_{10} =1000111_{2} \\81_{10} =1010001_{2}

ответ: В числе 81 в двочиной системе счисления 3 единицы

Gatina

Воспользуемся методом оценки.

Зная, что если число равно 2^n, где n - натуральное число

То в двоичной системе, первой цифрой будет единица, и n нулей.

Теперь каждое число представим в виде суммы или разницы двоек в степени.

59 = 2^5 + 2^4 + 2^3 + 2^1 + 2^0

71 = 2^6 + 2^2 + 2^1 + 2^0

81 = 2^6 + 2^4 + 2^0

Зная, чему равны эти числа в двоичной системе, посчитаем их сумму

59 = 100000 + 10000 + 1000 + 10 + 1

71 = 1000000 + 100 + 10 + 1

81 = 1000000 + 10000 + 1

Теперь посчитаем количество единиц

в числе 59 пять единиц

в числе 71 четыре единицы

в числе 81 три единицы

ответ:5

zhannasokortova
Поскольку неясно, что делать, если в массиве несколько минимальных или максимальных элементов, то считаем, что их только по одному.

const n=10;
var
  a: array[1..n] of integer;
  mn,mx: integer;
  i,k1,k2: byte;
begin
  mn:=maxint;
  mx:=-maxint;
  writeln ('Введите ',n,' чисел: ');
  for i:=1 to n do begin;
    read (a[i]);
    if a[i]<mn then begin mn:=a[i]; k1:=i end;
    if a[i]>mx then begin mx:=a[i]; k2:=i end;
  end;
  for i:=1 to n do 
    if (i>min(k1,k2)) and (i<max(k1,k2)) then a[i]:=0;
  writeln;
  writeln ('Местоположение минимального элемента: ',min(k1,k2));
  writeln ('Местоположение максимального элемента: ',max(k1,k2));
  writeln;
  print (a);
end.


Пример:
Введите 10 чисел: 5 2 9 4 6 8 2 1 3 7

Местоположение минимального элемента: 3
Местоположение максимального элемента: 8

5 2 9 0 0 0 0 1 3 7
  
jamaltreid
Здесь пришлось учитывать положительные и отрицательные числа, т.к. длина строки с отрицательным числом включает в себя и знак минус. Поэтому в некоторых местах программы я добавлю пояснение.

var
   n,p:integer;
   s: string;
begin
  write ('Введите число: ');
  readln (n);
  if n<0 then n:=-n; // отрицательное число переделываем в положительное, чтобы "длина строки" ниже не получилась больше количества цифр в числе
  str(n,s); // преобразуем число в строку, чтобы узнать длину числа (количество цифр)
  if (length(s) mod 2)=0 then n:=n div 10; // проверяем длину числа на четность. так как нам нужны цифры с НЕЧЕТНЫХ мест, убираем из числа последнюю цифру, которая стоит на ЧЕТНОМ месте:    
  p:=1;
  while n>=1 do begin // организуем цикл ПОКА число не станет меньше единицы (в цикле мы будем отрезать от него по две цифры)
    p:=p*(n mod 10); // произведение умножаем на последнюю цифру числа (остаток от деления числа на 10)
    n:=n div 100; // отрезаем от числа 2 последние цифры. (в последней итерации цикла оно примет вид 0,0х, т.е. будет больше 0, но меньше 1)
  end;
  writeln;
  writeln ('Произведение цифр,которые расположены на нечётных позициях, = ',p);
  end.


Проимер:

Введите число: -2323
Произведение цифр,которые расположены на нечётных позициях, = 4

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

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

Среди приведённых ниже трёх чисел, записанных в десятичной системе счисления (основание системы счисления указано в скобках рядом с числом), найдите число, в двоичной записи которого наименьшее количество единиц. В ответе запишите количество единиц в двоичной записи этого числа. 59(10), 71(10), 81(10)
Ваше имя (никнейм)*
Email*
Комментарий*

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

club-pushkin
dsnewline
Akopovich802
belka1976
N-odes-art-school410
girra
yocrew13
ALLA1868
ddavydov1116
Yelena642
nkaminskaja
Nikita_Lina1305
rosik76
schumacher8
egcuzn86