回 帖 发 新 帖 刷新版面

主题:[讨论]高精计算阶乘

[em1]
请问如何用高精思想计算n!,有程序讨论吗?

回复列表 (共7个回复)

沙发

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

板凳

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 楼

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 楼

春夏秋冬CXQD,你有错误.....

5 楼

谁说我的有错,你试试看!
神经病!

6 楼

用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 楼

凭什么不给我加分?我的程序是对的啊!而且我是第一个发的!

我来回复

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