回 帖 发 新 帖 刷新版面

主题:[讨论]改善高精度运算效率 之 扩大进制数

[color=800000][size=3]大家来讨论一下这几个问题!
  (1)整数数组减1;
  (2)整数数组除以整数;
  (3)两个整数数组相乘.
谢谢大家帮忙!![/size][/color]

回复列表 (共3个回复)

沙发

[size=4](1)
j:=0;
while (n[j]=0) do inc(j);
dec(n[j]);
for k:=0 to j-1 do n[k]:=9999;
if ((j=ln-1)and(n[j]=0)) then dec(ln);[/size]

板凳

(2)
l:=0
for j:=la-1 downto 0 do 
 begin
  inc(a[j],1*10000);
  l:=a[j] mod i;
 end;
while (a[la-1]=0) do dec(la); 

3 楼

1、
下列程序的功能:输入一个不大于127位的正整数,输出它减1的结果(精确值)。
TYPE arr = ARRAY[1..127] OF INTEGER;
VAR
  a, b: arr; i, k, p, l: INTEGER; s: STRING[127]; f: BOOLEAN;
BEGIN
    READLN(s);
    l := LENGTH(s);
    FOR i:=1 TO l DO VAL(COPY(s, l + 1 - i, 1), a[i], k);
    p := 1;
    REPEAT
         IF a[p] = 0 THEN BEGIN
            b[p] := 9; p := p + 1; f := FALSE;
         END ELSE BEGIN
            b[p] := a[p] - 1; f := TRUE
         END;
    UNTIL f;
    IF p <= l THEN BEGIN
       FOR i:=p + 1 TO l DO b[i] := a[i];
    END;
    WRITE(s, ' - 1 = ');
    IF s = '1' THEN WRITELN('0');
    IF b[l] = 0 THEN l := l - 1;
    FOR i := l DOWNTO 1 DO BEGIN
        WRITE(b[i]);
    END;
    READLN;
END.

3、
请见[url=http://www.programfan.com/club/post-241558.html]这张帖子[/url]

我来回复

您尚未登录,请登录后再回复。点此登录或注册