Допустим у тебя дано число 1001101 (в бинарной си), чтобы перевести ее в десятичную си нужно: 1) Расставить коэффициенты 0,1,2,3 начиная с последней цифры в двоичной записи. В итоге у тебя получаться такие коэффициенты над числами: 1^6, 0^5, 0^4, 1^3, 1^2, 0^1, 1^0. 2) Теперь умножим каждое число в бинарной си на основание двоичной си (двойка) в той степени, которой ты посчитал. Т.е.: 1*2^6, 0*2^5 и так далее. 3) Затем остается только сложить полученные числа из второго шага и ты получишь число в десятичной си
1) Расставить коэффициенты 0,1,2,3 начиная с последней цифры в двоичной записи. В итоге у тебя получаться такие коэффициенты над числами: 1^6, 0^5, 0^4, 1^3, 1^2, 0^1, 1^0.
2) Теперь умножим каждое число в бинарной си на основание двоичной си (двойка) в той степени, которой ты посчитал.
Т.е.: 1*2^6, 0*2^5 и так далее.
3) Затем остается только сложить полученные числа из второго шага и ты получишь число в десятичной си
// PascalABC.NET 3.4.2, сборка 1790 от 15.09.2018
// Внимание! Если программа не работает, обновите версию!
begin
var a := ArrRandom(ReadInteger('n='), 1, 100); a.Println; // общее
Println('Максимальный четный ', a.Where(t -> t.IsEven).Max); // задача 1
Print('Второй минимальнывй нечетный'); // задача 2
a.Where(t -> t.IsOdd).OrderDescending.Skip(1).Take(1).Println // задача 2
end.
Пример
n= 15
67 8 60 1 96 40 73 25 39 93 64 89 40 69 9
Максимальный четный 96
Второй минимальнывй нечетный 89