Записали выражение: $2014 - (2013) + 2012 - (2011) + … + 2 - (1)$ (знаки плюс и минус чередуются). можно поменять местами любые два числа (не трогая знаки), а затем вычислить значение получившегося выражения. какое максимальное число можно получить таким образом (можно сделать только один обмен)? в качестве ответа укажите одно целое число. комментарий. если поменять 2 и 1, получится такое выражение: $2014 - (2013) + 2012 - (2011) + … + 1 - (2)$.

maratabdullin1p0dtuc maratabdullin1p0dtuc    2   27.08.2019 07:30    0

Ответы
kjmhngbfv kjmhngbfv  26.08.2020 10:51
Код
//PascalABC.NET версия 3.2, сборка 1389
//Если программа не запускается, то обновите версию
uses System;
const
    n = 2014;

begin
   
    var a := ArrGen(n, i -> i * Power(-1, i), 1);
    Println(a);
   
    var max := a.Sum();
    for var i := 1 to n - 1 do
        for var j := i + 1 to n do
        begin
            var b := Arr(a);
           
            for var k := b.Low to b.High do
            begin
                if abs(b[k]) = i then
                    b[k] := sign(b[k]) * j
                else if abs(b[k]) = j then
                    b[k] := sign(b[k]) * i;
            end;
           
            var sum := b.Sum();
            if (max < sum) and (sum > 2000) then begin
                Println(i, j, sum);
                Println(b);
                max := sum;
            end;
        end;
    Println(max);
end.

ответ
Обмен (2; 2013)
Сумма = 5029
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Математика