回 帖 发 新 帖 刷新版面

主题:“高精度四则运算”的程序怎么编?

请教各位高人,“高精度四则运算”的程序怎么编?

回复列表 (共21个回复)

21 楼

加法
CLS
INPUT A$, B$
LA = LEN(A$): LB = LEN(B$)
IF LB > LA THEN SWAP A$, B$: SWAP LA, LB
N = LA + 1: DIM A(N), B(N)
FOR I = 1 TO LA: A(I) = VAL(MID$(A$, N - I, 1)): NEXT I
FOR I = 1 TO LB: B(I) = VAL(MID$(B$, LB + 1 - I, 1)): NEXT I
FOR I = 1 TO LA
X = A(I) + B(I)
A(I + 1) = A(I + 1) + X \ 10
A(I) = X MOD 10
NEXT I
WHILE A(N) = 0: N = N - 1: WEND
FOR I = N TO 1 STEP -1: PRINT USING "#"; A(I); : NEXT I
END
减法
INPUT A$,B$
LA=LEN(A$):LB=LEN(B$)
A1$=A$:B1$=B$
IF LA<LB THEN SWAP LA,LB:SWAP A$,B$:C$="-"
N=LA:DIM A(N),B(N)
FOR I=1TO LA:A(I)=VAL(MID$(A$,N-I,1)):NEXT I
FOR I=1TO LB:B(I0=VAL(MID$(B$,LB-I,1)):NEXT I
FOR I=1TO N
A(I)=A(I)-B(I)
A(I+1)=A(I+1)+(A(I)<0)
A(I)=A(I)-(A(I)<0)*10
NEXT I
PRINT A1$;"-";B1$;"=";
DO WHILE A(N)=0AND N>1:N=N-1:NEXT I
IF C$="-" THEN PRINT"-";
FOR I=N TO 1 STEP-1:?USING"#";A(I);:NEXT I
乘法
INOUT A4,B$
LA=LEN(A$):L=LEN(B$):LC=LA+LB
DIM A(LA),B(LB),C(LC)
FOR I=1TO LA:A(I)=VAL(MID$(A$,LA-I,1)):NEXT I
FOR I=1TO LB:B(I)=VAL(MID$(B$,LB-I,1)):NEXT I
FOR I=1 TO LA:FOR J=1TO LB
X=A(I)*B(I):C(W)=C(W)+X MOD 10
C(W+1)=C(W+1)+C(W)\10+X\10
C(W)=C(W) MOD 10
NEXT J,I
PRINT A$;"*";B$;"=";
WHILE C(LC)=0:LC=LC-1:WEND
FOR I=LC TO 1 STEP -1:PRINT USING"#";C(I):NEXT I
除法
CLS
INPUT A, B, E
PRINT A; "/"; B; "="; STR$(A \ B);
A = A MOD B
IF A <> 0 THEN PRINT ".";  ELSE END
FOR I = 1 TO E
IF A = 0 THEN END
A = A * 10: PRINT USING "#"; A \ B;
A = A MOD B
NEXT I
END
阶乘不打了,太累了

我来回复

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