1. Определим наибольшее натуральное число, куб которого не превышает 2019. ∛2019 ≈ 12.6; отбрасывая дробную часть, получаем 12. 2. Выпишем набор натуральных чисел от 1 до 12 и их кубов: 1-1, 2-8, 3-27, 4-64, 5-125, 6-216, 7-343, 8-512, 9-729, 10-1000, 11-1331, 12-1728 3. Определим при "жадного" алгоритма набор кубов, дающий в сумме 2019 (из 2019 поочередно вычитаем.максимально возможные кубы): 2019-1728=291, 291-216=75, 75-64=11, 11-8=3, а 3 - это три раза по 1. Получаются кубы чисел 12, 6, 4, 2, 1, 1, 1 - всего СЕМЬ чисел. 4. Попытаемся улучшить найденное решение, отбрасывая те, которые найдут семь и более чисел.
Если взять число 11³=1331, то 2019-1331=688 и нужно составить его из кубов не более, чем 5 чисел. 688-512=176, 176-125=51, 51-27=24 ... и слишком длинно. 688-2×343=2, 2-1=1, 1-1=0 - 4 числа. Улучшенное решение: 2019 = 11³+7³+7³+1³+1³
var c, a: array[1..20] of integer; i: integer; begin write('Первый массив '); for i := 1 to 20 do begin c[i] := i * (-5); write(c[i], ' '); end; writeln; write('Преобразованный массив '); for i := 1 to 20 do begin a[i] := c[20 - i + 1]; write(a[i], ' '); end; end.
ИЛИ Программа не использующая два массива, а просто переворачивающая первый
var c: array[1..20] of integer; i: integer; begin write('Первый массив '); for i := 1 to 20 do begin c[i] := i * (-5); write(c[i], ' '); end; writeln; write('Преобразованный массив '); for i := 20 downto 1 do write(c[i], ' '); end.
ответ: основанием системы счисления будет 13.