Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Чет про программирование / практика / 22) Вывод длинного числа на печать

.docx
Скачиваний:
20
Добавлен:
25.04.2015
Размер:
12.62 Кб
Скачать

Вывод длинного числа на печать

const

base_shift = 4;

base = 1 shl base_sift;

mask = base - 1;

var

c, b, a: TlongN;

procedure long_write(a, b: TLongN);

var

a: TlongN;

res: string;

x: integer;

Begin

a := copy(b, 0, length(b));

res := '';

while (length(a) > 1) or (a[0] <> 0) do begin

x := long_div(a, 10);

res := chr(x + orf('0')) + res;

end;

if res = '' then res := '0';

end;

function long_div(var a: TLongN; x: integer): integer;

var

k, i, j: integer;

Begin

k := 1;

for i := High(a) downto 0 do begin

j := j shl base_shift + a[i]; // j = j*16+a[i]

a[i] := j div x;

j := j mod x;

if (a[i] <> 0) and (k = 1) then

k := i+1;

end;

SetLength(a, k);

Result := j;

end;