Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями: F(1) = 7 F(n) = F(n–1) * n, при n >1.
Var st,stMax1,stMax:string; L,i,maxA,colA:integer; begin readln(st);{считываем строку} L:=length(st);{получаем длину строки} colA:=0;{количество букв а в слове} maxA:=0;{максимальное количество букв а в слове} stMax1:='';{то, куда мы будем записывать слово}
for i:=1 to L do begin {проходим по строке L раз} if ((st[i]<>' ') and (st[i]<>'.') and (st[i]<>'!') and (st[i]<>'?')) then {если символ не пробел, не точка, не воскл. знак и не вопрос. знак то записываем в строку одну букву} stMax1:=stMax1+st[i];{буква+буква+буква}
if (st[i]='а') then colA:=colA+1;{если считываемая буква-а то увеличиваем счётчик букв а в слове}
if (st[i]=' ') or (st[i]='.') or (st[i]='!') or (st[i]='?') then begin{если дошли до конца слова то...}
if (maxA<colA) then begin maxA:=colA; stMax:=stMax1 end;{если количество 'а' в слове больше макс. кол-ва 'а' в одном из слов, то максимальное кол-во приравниваем к кол-ву, строку приравниваем к этому слову(stMax:=stMax1)}
Var s,s1,s2,smax:string; max,k,p,i:integer; begin writeln('Введите предложение:'); readln(s); s1:=s; s1[length(s1)]:=' '; max:=0; smax:=''; while s1<>'' do begin p:=pos(' ',s1); s2:=copy(s1,1,p-1); k:=0; for i:=1 to p-1 do if s2[i]='а' then k:=k+1; if k>max then begin max:=k; smax:=s2; end else if k=max then smax:=smax+','+s2; delete(s1,1,p); end; writeln(smax); writeln('k = ',max); end.
Пример: Введите предложение: Макаронина и балаган а также команда каска и палатка. Макаронина,балаган,палатка k = 3
14
Объяснение:
F(2) = F(2-1) * 2 = F(1) * 2 = 7 * 2 = 14