Алгоритм вычисления значения функций F(n) и G(n), где n – натуральное число, задан следующими соотношениями: F(1) = 2 F(n) = F(n–1) · F(n–1) - F(n–1) · n + 5· n, при n >1 G(1) =3 G(n) = G(n–1) * n, при n >1 Чему равно значение функции F(4)+ G(4) ?
Const N = 13; Var A:array[1..N] of integer; i,Min:integer; Begin Randomize; Write('Исходый массив:'); For i:= 1 to N do Begin A[i]:=random(10000)-5000; Write(' ',A[i]) End; WriteLn; Min:=1000; For i:= 1 to N do if (99<Abs(A[i]))and(Abs(A[i])<1000)and(A[i] mod 7 = 0)and(A[i]<Min) then Min:=A[i]; if Min = 1000 then WriteLn('В массиве нет трёхзначных элементов, кратных семи') else WriteLn('Min = ',Min); End.
// PascalABC.NET 3.0, сборка 1073 const sb='bcdfgjklmnpqrstvwxz'; s='Computer programming is a process of computer programs creation'; var i,n:integer; s1,sn,t:string; begin i:=1; while s[i]<>' ' do Inc(i); s1:=Copy(s,1,i-1); n:=Length(s); i:=n; while s[i]<>' ' do Dec(i); sn:=Copy(s,i+1,n-i); t:=''; for i:=1 to Length(s1) do if Pos(s1[i],sb)>0 then t:=t+s1[i]; s1:=t; t:=''; for i:=1 to Length(sn) do if Pos(sn[i],sb)>0 then t:=t+sn[i]; sn:=t; t:=''; for i:=1 to Length(s1) do if Pos(s1[i],sn)>0 then if Pos(s1[i],t)=0 then t:=t+s1[i]; for i:=1 to Length(t) do Write(t[i],' '); Writeln end.
Тестовый прогон: t r
2. "Нормальное" решение
// PascalABC.NET 3.0, сборка 1073 const sb='bcdfgjklmnpqrstvwxz'; s='Computer programming is a process of computer programs creation'; begin var a:=s.ToWords(' '); a[0].Intersect(a[a.Length-1]).Where(x->Pos(x,sb)>0).Println(',') end.
N = 13;
Var
A:array[1..N] of integer;
i,Min:integer;
Begin
Randomize;
Write('Исходый массив:');
For i:= 1 to N do
Begin
A[i]:=random(10000)-5000;
Write(' ',A[i])
End;
WriteLn;
Min:=1000;
For i:= 1 to N do
if (99<Abs(A[i]))and(Abs(A[i])<1000)and(A[i] mod 7 = 0)and(A[i]<Min) then
Min:=A[i];
if Min = 1000 then WriteLn('В массиве нет трёхзначных элементов, кратных семи')
else WriteLn('Min = ',Min);
End.
Пример:
Исходый массив: 2635 4814 -2784 1015 -462 -50 4069 -4566 578 168 707 660 -731
Min = -462