{ A := n! }
procedure Fact(Var A: TObj; n: LongInt);
var T: TObj; i: LongInt;
begin
T.Init;
{
Вот это, конечно не очень красиво, надо бы как-то сделать
инициализацию TObj обычным числом... Но работает...
}
T.X^[1] := 1;
T.X^[0] := 1;
for i := 2 to n do begin
A.MulLongShort(T, i);
T.X^ := A.X^;
end;
end;
Цитата
В HugeObj для того, чтобы можно было выводить результат в memo (ввиде текста) Алена дала мне функцию Function HugeToStr: String. В dlinna наверно тоже что-то такое нужно добавить?
А можно, я за нее? Опять же, аналогично тому, что делается в WriteLong, только вывод - не в файл, а в строку...
{ А вот это - уже метод объекта, не забывай его описание добавить в Type TObj }
Function TObj.HugeToStr: String;
var ls,s:string;
i:integer;
begin
result := '';
str(_osn div 10, ls);
result := result + IntToStr(X^[X^[0]]);
for i:=X^[0]-1 downto 1 do
begin
str(X^[i],s);
while length(s)<length(ls) do s:='0'+s;
result := result + s;
end;
end;