<em>// PascalABC.NET 3.2, сборка 1488 от 21.06.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var a:=ArrRandom(31,16,27); a.Println;
var s:=a.Select((x,i)->(x,i)).OrderBy(x->x[0]).Select(x->x[1]+1);
Write('Семь самых холодных дней: '); s.Take(7).Println;
Write('Семь самых жарких дней: '); s.TakeLast(7).Println
end.
<u>Пример</u>
17 17 25 27 22 26 22 23 26 26 25 16 21 25 22 17 20 19 16 19 21 22 19 16 21 27 22 24 22 24 22
Семь самых холодных дней: 12 19 24 1 2 16 18
Семь самых жарких дней: 11 14 6 9 10 4 26
В основе алгоритма лежит последовательное деление числа на 8 и анализ остатка от этого деления. Фактически, происходит получение цифр числа в восьмеричной системе счисления. Если очередная цифра нечетная, значение a увеличивается на нее, а если четная - значение b умножается на нее. В результате a - сумма нечетных цифр числа в его восьмеричном представлении, b - произведение четных цифр.
a=2 и есть только один способ получения такой суммы нечетных цифр: 1+1
b=12и есть только один способ получения такого произведения четных цифр: 2×6.
Теперь мы знаем все цифры восьмеричного числа: 1, 1, 2, 6.
Максимальное восьмеричное число, составленное из них - это 6211.
6211₈ = 6×8³+2×8²+1×8+1 = 3072+128+8+1 = 3209₁₀
Ответ: 3209
Скорее всего 11. Просто подумать логически