主题:[讨论]高精计算阶乘
tujunqiang
[专家分:150] 发布于 2007-11-07 22:11:00
[em1]
请问如何用高精思想计算n!,有程序讨论吗?
回复列表 (共7个回复)
沙发
lu1012 [专家分:20] 发布于 2007-12-03 17:51:00
CLS
INPUT N: B$ = "1"
DIM A(1000), B(1000), C(1000)
FOR K = 1 TO N
A$ = LTRIM$(STR$(M))
S = S + 1: LA = LEN(A$): LB = LEN(B$): LC = LA + LB
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: B$ = ""
FOR I = 1 TO LA: FOR J = 1 TO LB
X = K * 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: B$ = B$ + LTRIM$(STR$(C(I))): NEXT I
FOR I = 1 TO LC: C(I) = 0: NEXT I
NEXT K: PRINT LTRIM$(STR$(N)) + "!=" + B$
END
板凳
春夏秋冬CXQD [专家分:140] 发布于 2007-12-06 17:12:00
CLS
INPUT N:B$="1":DIM A(10000),B(10000),C(10000)
FOR K=1 TO N
A$=LTRIM$(STR$(K))
A=LEN(A$):B=LEN(B$):C=A+B
FOR I=1 TO A:A(I)=VAL(MID$(A$,A+1-I,1)):NEXT I
FOR I=1 TO B:B(I)=VAL(MID$(B$,B+1-I,1)):NEXT I:B$=""
FOR I=1 TO A:FOR J=1 TO B
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(C)=0:C=C-1:WEND
FOR I=C TO 1 STEP -1:B$=B$+LTRIM$(STR$(C(I))):C(I)=0:NEXT I
NEXT K
PRINT B$
END
3 楼
QB小猪 [专家分:1200] 发布于 2007-12-06 17:51:00
CLS
INPUT N
DIM A(10000), B(10000), C(10000)
B$ = "1"
FOR Z = 1 TO N
A$ = LTRIM$(STR$(Z))
LA = LEN(A$): LB = LEN(B$): LC = LA + LB
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:B$ = ""
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: B$ = B$ + LTRIM$(STR$(C(I))):C(I)=0: NEXT I
NEXT Z
PRINT STR$(N); "!"; "="; B$
END
4 楼
QB小猪 [专家分:1200] 发布于 2007-12-06 17:52:00
春夏秋冬CXQD,你有错误.....
5 楼
春夏秋冬CXQD [专家分:140] 发布于 2007-12-06 17:55:00
谁说我的有错,你试试看!
神经病!
6 楼
def [专家分:3380] 发布于 2007-12-16 20:05:00
用fasm:用浮点处理器计算64位,
src dq 10
dst dq 1
temp dw 1
jiecheng:
finit
fild qword [dst]
mov cx,[src]
jiecheng_loop:
mov [temp],cx
fimul word [temp]
loop jiecheng_loop
fistp qword [dst]
;则dst就是src的阶成
7 楼
lu1012 [专家分:20] 发布于 2007-12-30 16:22:00
凭什么不给我加分?我的程序是对的啊!而且我是第一个发的!
我来回复