Var S, tmp, buf, firstW: string; i, j, k, p, ii: integer; ch: char;
begin S := 'privit kak dela putin znanija test proverka privit teste.'; firstW := copy(S, 1, pos(' ', S) - 1); writeln('Исходная строка: ', S); writeln('Первое слово = ', firstW); i := 0; while (S[i] <> '.') do begin i := i + 1; if (S[i] <> ' ') then begin while ((S[i] <> ' ') and (i < Length(S))) do begin tmp := tmp + S[i]; i := i + 1; end; buf := tmp; p := 0; ii := 1; while ii <= Length(buf) do begin k := 0; ch := buf[ii]; for j := Length(buf) downto ii do if buf[j] = ch then begin k := k + 1; delete(buf, j, 1); end; if k > 1 then p := 1; end; if ((p <> 0) and (tmp <> firstW)) then writeln(tmp); tmp := ''; end; end; readln; end.
Входные данные: 147*(5) И так, я предлагаю посмотреть сколько "5" удаляется за 1 раз
ПОКА нашлось (5555) ИЛИ нашлось (3333) ЕСЛИ нашлось (5555) ТО заменить (5555, 3) ИНАЧЕ заменить (3333, 5) КОНЕЦ ЕСЛИ
5555 --> 3 Уходит четыре "5". 147 / 4 = 36 (3) 36 раз у нас "5555" заменится на "3", и останется еще три "5". Наша строка:(36*(3) + 555) Теперь "3333" ---> 5 36 / 4 = 9 (0) 9 раз "3333" заменим на "5", получаем 9*(5) + 555 = 12*(5) "5555" --> 3 12 / 4 = 3(0) 3 раза "5555" заменим на "3" 333 Конец. ответ: 333
S, tmp, buf, firstW: string;
i, j, k, p, ii: integer;
ch: char;
begin
S := 'privit kak dela putin znanija test proverka privit teste.';
firstW := copy(S, 1, pos(' ', S) - 1);
writeln('Исходная строка: ', S);
writeln('Первое слово = ', firstW);
i := 0;
while (S[i] <> '.') do
begin
i := i + 1;
if (S[i] <> ' ') then
begin
while ((S[i] <> ' ') and (i < Length(S))) do
begin
tmp := tmp + S[i];
i := i + 1;
end;
buf := tmp;
p := 0;
ii := 1;
while ii <= Length(buf) do
begin
k := 0;
ch := buf[ii];
for j := Length(buf) downto ii do
if buf[j] = ch then
begin
k := k + 1;
delete(buf, j, 1);
end;
if k > 1 then
p := 1;
end;
if ((p <> 0) and (tmp <> firstW)) then
writeln(tmp);
tmp := '';
end;
end;
readln;
end.
И так, я предлагаю посмотреть сколько "5" удаляется за 1 раз
ПОКА нашлось (5555) ИЛИ нашлось (3333)
ЕСЛИ нашлось (5555)
ТО заменить (5555, 3)
ИНАЧЕ заменить (3333, 5)
КОНЕЦ ЕСЛИ
5555 --> 3
Уходит четыре "5".
147 / 4 = 36 (3)
36 раз у нас "5555" заменится на "3", и останется еще три "5".
Наша строка:(36*(3) + 555)
Теперь
"3333" ---> 5
36 / 4 = 9 (0)
9 раз "3333" заменим на "5", получаем
9*(5) + 555 = 12*(5)
"5555" --> 3
12 / 4 = 3(0)
3 раза "5555" заменим на "3"
333
Конец.
ответ: 333