Первый алгоритм: const n=30; var a:array[1..30] of integer; s:longint; i:integer; begin { формируем массив } Randomize; Writeln('Элементы массива:'); for i:=1 to n do begin a[i]:=Random(51)-25; Write(a[i]:4) end; Writeln; { собственно, алгоритм } s:=a[1]*a[2]; i:=3; while i<=n-1 do begin s:=s+a[i]*a[i+1]; i:=i+2 end; Writeln('Сумма пар произведений равна ',s) end.
Тестовое решение: Элементы массива: 1 10 -9 -12 -2 20 21 14 5 19 21 -14 -10 -17 5 -9 -8 17 18 11 -21 -3 -15 -10 -15 -16 -15 2 3 21 Сумма пар произведений равна 846
Второй алгоритм const n=30; var a:array[1..30] of integer; smax,imax:longint; i:integer; begin { формируем массив } Randomize; Writeln('Элементы массива:'); for i:=1 to n do begin a[i]:=Random(51)-25; Write(a[i]:4) end; Writeln; { собственно, алгоритм } smax:=a[1]+a[2]; imax:=1; for i:=2 to n-1 do if smax<a[i]+a[i+1] then begin smax:=a[i]+a[i+1]; imax:=i end; Writeln('Номер первого из пары элементов с максимальной суммой: ',imax) end.
Тестовое решение: Элементы массива: 23 13 -11 -1 -18 20 -23 1 -21 -10 7 15 -2 24 -18 -22 -13 12 -16 22 19 -14 -14 -14 19 15 8 -15 -19 -22 Номер первого из пары элементов с максимальной суммой: 20
Всё правильно, это "11", о котором ты спрашиваешь, записано в 3-й системе.
Когда ты делишь 148 на 9 (в десятичной системе), у тебя получается остаток 4:
148 : 9 = 16 (ост 4)
Если записать то же самое, но в троичной системе, получится:
12111 : 100 = 121 (ост 11)
Для любой системы счисления с основанием N:
число N^2 запишется как 100
число N^3 запишется как 1000
число N^4 запишется как 10000
и т.д.
При делении на N^2 остаток будет две последние цифры;
при делении на N^3 остаток будет три последние цифры
и т.д.