Решите пожалуйста Паскаль

0 голосов
27 просмотров

Решите пожалуйста Паскаль


image

Информатика (140 баллов) | 27 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

1. Поскольку алгоритм генерации значения циклически повторяется для каждой тройки элементов, логично привязаться к остатку от деления индекса на 3. Тогда получим следующую формулу:
\displaystyle a[i]=\left\{\begin{matrix}
i,& i\mod 3=1 \\ 
a_{i-1}^2, & i\mod 3=2 \\ 
a_{i-1} \div 3, & i \mod 3=0
\end{matrix}\right.
Тут операция \div означает целочисленное деление.

var
  a:array[1..9] of integer;
  i:integer;
begin
  for i:=1 to 9 do begin
    case i mod 3 of
    1: a[i]:=i;
    2: a[i]:=sqr(a[i-1]);
    0: a[i]:=a[i-1] div i
    end;
    Write(a[i],' ')
    end
end.

Результат
1 1 0 4 16 2 7 49 5

2. Тут формула преобразования совсем простая:
\diaplaystyle b_i=a_i^2-a_i=a_i(a_i-1)

var
  a,b:array[1..15] of integer;
  i:integer;
begin
  randomize;
  for i:=1 to 15 do begin
    a[i]:=Random(51)-25;
    Write(a[i],' ');
    b[i]:=a[i]*(a[i]-1)
    end;
  Writeln;
  for i:=1 to 15 do Write(a[i]-b[i],' ');
  Writeln 
end.

Пример
-6 -14 -13 25 13 21 11 17 -2 -19 -9 25 -11 15 17
-48 -224 -195 -575 -143 -399 -99 -255 -8 -399 -99 -575 -143 -195 -255

(150k баллов)