program fofgogjoj; const nmax=100; var m:array[1..nmax] of integer; n,i,j,k:byte; a,b,x:integer; begin randomize; repeat Write('Размер массива до ',nmax div 3,' n='); readln(n); until n in [1..nmax div 3]; Writeln('Исходный массив:'); for i:=1 to n do begin m[i]:=random(50); Write(m[i],' '); end; Writeln; Writeln; Write('Введите число для вставки перед a='); Readln(a); i:=1; k:=0; while i<=n do begin if m[i]>a then begin n:=n+1; k:=1; for j:=n downto i+1 do m[j]:=m[j-1]; m[i]:=a; i:=i+2; end else i:=i+1; end; if k=0 then Writeln('Элементов больше ',a,' нет') else begin Writeln('Массив после вставки числа ',a,' перед большими ',a); for i:=1 to n do Write(m[i],' '); Writeln; Writeln; Write('Введите число для вставки после b='); Readln(b); i:=1;k:=0; while i<=n do if m[i]<b then begin n:=n+1; k:=1; for j:=n downto i+2 do m[j]:=m[j-1]; m[i+1]:=b; i:=i+2; end else i:=i+1; if k=0 then Writeln('Элементов меньше ',b,' нет') else begin Writeln('Массив после вставки числа ',b,' после меньших ',b); for i:=1 to n do Write(m[i],' '); end; end; readln end.
Пусть *(n) - число звёздочек, которое выведет процедура f(n).
Так как f(n) всегда выводит 1 звёздочку, а если если n > 2 - то вызывает f(n - 1) и f(n - 2), то *(n) = 1 при n <= 2 *(n) = 1 + *(n - 1) + *(n - 2) при n > 2.