回 帖 发 新 帖 刷新版面

主题:高精度加法怎么做

CLS
INPUT a$, b$
la = LEN(a$): lb = LEN(b$)
IF la < lb THEN SWAP a$, b$: SWAP la, lb
DIM a$(la), b$(la), c(la + 1)
FOR i = 1 TO la
a$(i) = MID$(a$, i, 1)
NEXT i
FOR i = 1 TO lb
b$(i) = MID$(b$, i, 1)
NEXT i
b$(1) = SPACE$(la - lb) + b$(1)
FOR i = 1 TO la
c(i) = VAL(MID$(b$(i), i, 1)) + VAL(MID$(b$(i), i, 1))
NEXT i
END
FOR i = la TO 1 STEP -1
c(i - 1) = c(i - 1) + c(i) / 10
c(i) = c(i) MOD 10
NEXT i
FOR i = 1 TO la
PRINT c(i);
NEXT i
我这程序哪有错??请教一下

回复列表 (共4个回复)

沙发

江苏版红色书上有教,我发一个程序给你吧:
CLS
INPUT A$:LA=LEN(A$)
INPUT B$:LB=LEN(B$)
?A$;"+";B$;"=";
IF LA<LB THEN LC=LB+1 ELSE LC=LA+1
DIM A(LC),B(LC),C(LC)
FOR I=1 TO LA:A(I)=VAL(MID$(A$,LA+1-I,1)):NEXT I
FOR I=1 TO LB:B(I)=VAL(MID$(B$,LB+1-I,1)):NEXT I
FOR I=1 TO LC
X=A(I)+B(I)+G:G=X\10
C(I)=X MOD 10
NEXT I
WHILE C(LC)=0:LC=LC-1:WEND
FOR I=LC TO 1 STEP -1:?USING"#";C(I);:NEXT I
END
这是对的哦,不过只限于整数。

板凳

也不加分!不道德!

3 楼

我看你骂人才不道德

4 楼

统一三楼,不过楼主的错误好像在输入上,不能直接输入字符串,要输入一个存储在数组总一个,哪有直接输入字符串.

我来回复

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