主题:耐人寻味的高精度计算
网络爱好者
[专家分:60] 发布于 2006-08-24 15:30:00
键入一个多位数,求每一位数字之积?
回复列表 (共4个回复)
沙发
悟丑 [专家分:60] 发布于 2006-08-24 19:43:00
以下代码位测试,仅供参考:
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
板凳
moz [专家分:37620] 发布于 2006-08-24 23:19:00
别滥发重复贴,留你一晚,明早删除.
3 楼
黑白猪-- [专家分:420] 发布于 2007-03-30 16:52:00
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 楼
小精灵LS [专家分:580] 发布于 2007-04-04 17:12:00
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
我来回复