Форум » Обработка числовых последовательностей » Другое решение задачи С4 14 » Ответить

Другое решение задачи С4 14

Анна: Я думаю что такое решение более компактное и содержит намного меньше проходов по массиву, чем приведенное вами в ответах. Ошибки нигде вроде бы нет, все проверила и протестировала. program demo_C4; const max=26; var i,j,m,id:integer; F:string; MData:array [1..max] of integer; simv:char; begin i:=0; j:=0; m:=0; id:=0; for i:=1 to max do MData[i]:=0; read(simv); while simv<>'.' do begin inc(MData[ord(simv)-ord('A')+1]); read(simv); end; for i:=1 to max do If MData[i]<>0 then begin begin If Mdata[i] mod 2=0 then begin for j:=1 to MData[i] do insert(chr(i+ord('A')-1),F,((length(F) div 2)+1)); end else begin inc(m); id:=i end end end; if m>1 then writeln('NO') else writeln ('Da'); if m=1 then begin for j:=1 to MData[id] do insert(chr(id+ord('A')-1),F,(length(F) div 2)+1) end; Writeln(F); end.

Ответов - 2

Поляков: Анна пишет: такое решение более компактное и содержит намного меньше проходов по массиву По сути решение аналогичное, просто вы строите результат в виде символьной строки в памяти, а в моем варианте он формируется при выводе. Если вы не возражаете против включения его в сборник на моем сайте, пожалуйста пришлите мне на почту ваши данные (ФИО) и авторское объяснение алгоритма.

Анна: Конечно не возражаю, сейчас пришлю на почту



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