Напишите программу, которая переводит переданное её целое число (возможно, отрицательное) в заданную систему счисления с любым основанием от 2 до 36. Используйте процедуру. Входные данные Входная строка содержит целое число N и основание системы счисления B , разделённые пробелом. Гарантируется, что 2 ≤ B ≤ 36 . Выходные данные Программа должна вывести представление переданного её числа N в системе счисления с основанием B . При записи чисел в системах с основанием большим 10 используются прописные латинские буквы.
Примеры
Входные данные
13 3
Выходные данные
111
Входные данные
-34 18
Выходные данные
-1G

Ответы

Ответ дал: AnonimusPro
1
function dname(n: integer ): string;
var s: string;
begin
if n>9 then s:=char(ord(n+55))
else str(n,s);
dname:=s;
end;
function revstr(a: string ): string;
var b: string;
i: integer;
begin
b:='';
for i:=length(a) downto 1 do b:=b+a[i];
revstr:=b;
end;
procedure oprss(x,a: integer; c: string );
var s: string;
begin
s:='';
while x<>0 do begin
s:=s+dname(x mod a);
x:=x div a;
end;
s:=revstr(s);
insert(c,s,1);
write(s);
end;
var n,b: integer;
begin
readln(n,b);
if n>=0 then oprss(n,b,'') else oprss(-n,b,'-');
end.
Вас заинтересует