Форум » Обработка числовых последовательностей » С4 задача 39 (последняя) » Ответить

С4 задача 39 (последняя)

Миша: Хотелось бы узнать, является ли моё личное решение этой задачи верным. Program C4; Var Mic:real; i,j,l,f1,f2,m1,m2:integer; k,h:char; s1,s2:string; Begin Read(S1,S2); Mic:=0; m1:=length(S1); m2:=length(S2); f1:=0; f2:=0; For k:='a' to 'z' do begin f1:=0; f2:=0; For i:=1 to length(S1) do If (copy(S1,i,1)=k) or (copy(S1,i,1)=upcase(k)) then inc(f1); For j:=1 to length(S2) do If (copy(S2,j,1)=k) or (copy(S2,j,1)=upcase(k)) then inc(f2); Mic:=Mic+(f1*f2)/(m1*m2); end; Write(MIc:5:3); end.

Ответов - 1

Поляков: Миша пишет: является ли моё личное решение этой задачи верным. В целом - да. Зачем пишете copy(S1,j,1) вместо S1[j] - непонятно. Длины строк можно повторно не пересчитывать - они ведь есть в m1 и m2. Ввод строк лучше делать через readln: [pre2] readln(S1); readln(S2);[/pre2]Деление на m1*m2 лучше вынести из цикла.



полная версия страницы