Показать сообщение отдельно
  #4  
Старый 03.04.2009, 22:52
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Описание алгоритма... проще функцию привести, она сама за себя всё скажет:
Код:
function SumFromStr(str:string):string;
const
  arr:string='0123456789abcdef';
var
  sum:string;
  i,j,p,c:integer;
begin
  sum:='00000000000000000000000000000000';
  for i:=1 to length(str) do begin
   for j:=0 to ord(str[i]) do begin
    p:=(i*j mod 32)+1;
    c:=pos(sum[p],arr)+1;
    if c>=16 then c:=1;
    sum[p]:=arr[c];
   end;
  end;
  Result:=sum;
end;
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием