Делим число в десятичной системе на основание числа, которое мы хотим получить, то есть на 2:
200 / 2 = 100 (0), где 0 - это остаток. Действительно, 2 · 100 + 0 = 200
100 / 2 = 50 (0)
50 / 2 = 25 (0)
25 / 2 = 12 (1), 2 · 12 + 1 = 24 + 1 = 25. Это можно представить так: у Вас есть 25 яблок и 2 друга, между которыми нужно поровну разделить все яблоки. Вы можете обоим дать только по 12 яблок, а останется 1. Это и будет остаток.
12 / 2 = 6 (0)
6 / 2 = 3 (0)
3 / 2 = 1 (1)
1 / 2 = 1 (1), применим на том же примере с яблоками: у нас есть одно яблоко и 2 друга, а нужно разделить количество яблок поровну, не деля яблоко пополам. У Вас сделать это не получится, поэтому у Вас остаётся 1 яблоко, то есть остаток.
Делим число в десятичной системе на основание числа, которое мы хотим получить, то есть на 2:
200 / 2 = 100 (0), где 0 - это остаток. Действительно, 2 · 100 + 0 = 200
100 / 2 = 50 (0)
50 / 2 = 25 (0)
25 / 2 = 12 (1), 2 · 12 + 1 = 24 + 1 = 25. Это можно представить так: у Вас есть 25 яблок и 2 друга, между которыми нужно поровну разделить все яблоки. Вы можете обоим дать только по 12 яблок, а останется 1. Это и будет остаток.
12 / 2 = 6 (0)
6 / 2 = 3 (0)
3 / 2 = 1 (1)
1 / 2 = 1 (1), применим на том же примере с яблоками: у нас есть одно яблоко и 2 друга, а нужно разделить количество яблок поровну, не деля яблоко пополам. У Вас сделать это не получится, поэтому у Вас остаётся 1 яблоко, то есть остаток.
Теперь "собираем" остатки снизу вверх:
11001000₂ - это и будет наш двоичный код.
ответ11001000
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-20,20); a.Println;
var imin:=a.IndexMin;
Writeln('Номер минимального элемента- ',imin+1);
Writeln('Элементов, равных минимальному- ',
a.Where(x->x=a[imin]).Count-1)
end.
Пример
n= 50
-13 17 18 10 -6 13 16 -12 -15 10 18 -7 -20 18 14 14 11 20 4 4 -10 6 -20 11 -2 4 7 -3 -20 -18 -6 11 -15 -8 16 11 -13 3 -5 2 6 7 -10 11 8 19 1 -11 16 -10
Номер минимального элемента- 13
Элементов, равных минимальному- 2