第1个回答 2010-10-14
递归么?
3:
直接字符串读入,用delete删除空格
然后length长度,倒序输出就OK啦。
6:
。。。包括负进制么。。。
以下是大于等于2进制的(不能用于高精数)n进制转成m进制
var (nz是原来的进制,mz是要转换的进制,str是要转的数)
Str: string;
nz, mz: 2..36;
a: Byte;
i, n, j, k, m: Integer;
h: Int64;
a1: array[1..60] of Integer;
function e(x, y: Integer): Int64;
var
z: Integer;
begin
e := 1;
for z := 1 to y do
e := e * x;
end;
begin
Readln(nz);
Readln(mz);
Readln(Str);
i := Length(Str);
n := 0;
h := 0;
for j := i downto 1 do
begin
if a < 10 then
a := Ord(Str[j]) - Ord('0')
else
a := Ord(Str[j]) - Ord('A');
h := h + a * e(nz, n);
n := n + 1;
end;
m := 1;
while h <> 0 do
begin
j := h mod mz;
h := h div mz;
a1[m] := j;
m := m + 1;
end;
for k := m - 1 downto 1 do
begin
if a1[k] < 10 then
Write(a1[k])
else
Write(Chr(a1[k] + 65));
end;
end.