回 帖 发 新 帖 刷新版面

主题:耐人寻味的高精度计算

键入一个多位数,求每一位数字之积?

回复列表 (共4个回复)

沙发

以下代码位测试,仅供参考:

         dim sum as long
         input n
         a=str(n)
         sum=1
         for i=1 to len(a)
             sum=sum * val(mid(a,i,1))
         next i
         print a

板凳

别滥发重复贴,留你一晚,明早删除.

3 楼

CLS
INPUT A$,B$
LA=LEN(A$):LB=LEN(B$):LC=LA+LB
DIM A(LA),B(LB),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 LA:FOR J=1 TO LB
 X=A(I)*B(J):W=I+J-1
 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
WHILE C(LC)=0 AND LC>1
 LC=LC-1
WEND
FOR I=LC TO 1 STEP-1:? USING"#";C(I):NEXT I
END

4 楼

CLS
INPUT A$
INPUT B$
PRINT A$; "*"; B$; "=";
LA = LEN(A$): LB = LEN(B$): LC = LA + LB
DIM A(LA), B(LB), 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 LA: FOR J = 1 TO LB
X = A(I) * B(J): W = I + J - 1
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
WHILE C(LC) = 0 AND LC > 1: LC = LC - 1: WEND
FOR I = LC TO 1 STEP -1
PRINT USING "#"; C(I);
NEXT I
END

我来回复

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