Delphi-int.ru: портал программистов

Вход Регистрация | Забыли пароль?

Просмотр кода

Идентификатор: 8539fd53 Описание: Код загружен: 21 ноября 2010, 15:34 (Amidamaru)

  1. function FacItr(n: Word): Longint;
  2. var
  3. f: LongInt;
  4. i: Integer;
  5. begin
  6. f := 1;
  7. for i := 2 to n do
  8. f := f * i;
  9. Result := f;
  10. end;
  11.  
  12. procedure TForm1.Button3Click(Sender: TObject);
  13. var a:array of byte;
  14. s:string;
  15. i,j,l,r,r0:integer;
  16. b,c:byte;
  17. begin
  18. s:=Edit1.Text; {текст состоит из цифр}
  19. l:=length(s);
  20. SetLength(a,l);
  21. for I := 0 to l - 1 do
  22. a[i]:=Ord(s[i])-30; {превращаем текст в цифры}
  23. for i := 0 to l - 2 do {сортируем}
  24. for j := i+1 to l-1 do
  25. if a[i]>a[j] then
  26. begin
  27. b:=a[i];
  28. a[i]:=a[j];
  29. a[j]:=b;
  30. end;
  31. j:=1;
  32. b:=a[0];
  33. for i := 0 to l-1 do {делаем их последовательными}
  34. if a[i]=b then a[i]:=j
  35. else begin
  36. b:=a[i];
  37. inc(j);
  38. a[i]:=j;
  39. end;
  40. c:=a[l-1];
  41. r:=FacItr(c);
  42. r0:=r div 2;
  43. b:=a[0];
  44. j:=0;
  45. for i := 1 to l-1 do
  46. if a[i]=b then begin
  47. r:=r+(r0+j)*(c-1);
  48. inc(j);
  49. end else begin
  50. b:=a[i];
  51. r0:=r div 2;
  52. j:=0;
  53. end;
  54. ShowMessage(IntToStr(r));
  55. end;

Ссылка на данный код:

На главную страницу сервиса обмена кодом »